<?xml version="1.0" standalone="yes"?>
<axsl:stylesheet xmlns:axsl="http://www.w3.org/1999/XSL/Transform" xmlns:sch="http://www.ascc.net/xml/schematron" xmlns:iso="http://purl.oclc.org/dsdl/schematron" xmlns:h="http://hpxmlonline.com/2019/10" version="1.0"><!--Implementers: please note that overriding process-prolog or process-root is 
    the preferred method for meta-stylesheets to use where possible. -->
<axsl:param name="archiveDirParameter"/><axsl:param name="archiveNameParameter"/><axsl:param name="fileNameParameter"/><axsl:param name="fileDirParameter"/>

<!--PHASES-->


<!--PROLOG-->
<axsl:output xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" xmlns:svrl="http://purl.oclc.org/dsdl/svrl" method="xml" omit-xml-declaration="no" standalone="yes" indent="yes"/>

<!--KEYS-->


<!--DEFAULT RULES-->


<!--MODE: SCHEMATRON-SELECT-FULL-PATH-->
<!--This mode can be used to generate an ugly though full XPath for locators-->
<axsl:template match="*" mode="schematron-select-full-path"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:template>

<!--MODE: SCHEMATRON-FULL-PATH-->
<!--This mode can be used to generate an ugly though full XPath for locators-->
<axsl:template match="*" mode="schematron-get-full-path"><axsl:apply-templates select="parent::*" mode="schematron-get-full-path"/><axsl:text>/</axsl:text><axsl:choose><axsl:when test="namespace-uri()=''"><axsl:value-of select="name()"/><axsl:variable name="p_1" select="1+    count(preceding-sibling::*[name()=name(current())])"/><axsl:if test="$p_1&gt;1 or following-sibling::*[name()=name(current())]">[<axsl:value-of select="$p_1"/>]</axsl:if></axsl:when><axsl:otherwise><axsl:text>*[local-name()='</axsl:text><axsl:value-of select="local-name()"/><axsl:text>' and namespace-uri()='</axsl:text><axsl:value-of select="namespace-uri()"/><axsl:text>']</axsl:text><axsl:variable name="p_2" select="1+   count(preceding-sibling::*[local-name()=local-name(current())])"/><axsl:if test="$p_2&gt;1 or following-sibling::*[local-name()=local-name(current())]">[<axsl:value-of select="$p_2"/>]</axsl:if></axsl:otherwise></axsl:choose></axsl:template><axsl:template match="@*" mode="schematron-get-full-path"><axsl:text>/</axsl:text><axsl:choose><axsl:when test="namespace-uri()=''">@<axsl:value-of select="name()"/></axsl:when><axsl:otherwise><axsl:text>@*[local-name()='</axsl:text><axsl:value-of select="local-name()"/><axsl:text>' and namespace-uri()='</axsl:text><axsl:value-of select="namespace-uri()"/><axsl:text>']</axsl:text></axsl:otherwise></axsl:choose></axsl:template>

<!--MODE: SCHEMATRON-FULL-PATH-2-->
<!--This mode can be used to generate prefixed XPath for humans-->
<axsl:template match="node() | @*" mode="schematron-get-full-path-2"><axsl:for-each select="ancestor-or-self::*"><axsl:text>/</axsl:text><axsl:value-of select="name(.)"/><axsl:if test="preceding-sibling::*[name(.)=name(current())]"><axsl:text>[</axsl:text><axsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1"/><axsl:text>]</axsl:text></axsl:if></axsl:for-each><axsl:if test="not(self::*)"><axsl:text/>/@<axsl:value-of select="name(.)"/></axsl:if></axsl:template>

<!--MODE: GENERATE-ID-FROM-PATH -->
<axsl:template match="/" mode="generate-id-from-path"/><axsl:template match="text()" mode="generate-id-from-path"><axsl:apply-templates select="parent::*" mode="generate-id-from-path"/><axsl:value-of select="concat('.text-', 1+count(preceding-sibling::text()), '-')"/></axsl:template><axsl:template match="comment()" mode="generate-id-from-path"><axsl:apply-templates select="parent::*" mode="generate-id-from-path"/><axsl:value-of select="concat('.comment-', 1+count(preceding-sibling::comment()), '-')"/></axsl:template><axsl:template match="processing-instruction()" mode="generate-id-from-path"><axsl:apply-templates select="parent::*" mode="generate-id-from-path"/><axsl:value-of select="concat('.processing-instruction-', 1+count(preceding-sibling::processing-instruction()), '-')"/></axsl:template><axsl:template match="@*" mode="generate-id-from-path"><axsl:apply-templates select="parent::*" mode="generate-id-from-path"/><axsl:value-of select="concat('.@', name())"/></axsl:template><axsl:template match="*" mode="generate-id-from-path" priority="-0.5"><axsl:apply-templates select="parent::*" mode="generate-id-from-path"/><axsl:text>.</axsl:text><axsl:value-of select="concat('.',name(),'-',1+count(preceding-sibling::*[name()=name(current())]),'-')"/></axsl:template><!--MODE: SCHEMATRON-FULL-PATH-3-->
<!--This mode can be used to generate prefixed XPath for humans 
	(Top-level element has index)-->
<axsl:template match="node() | @*" mode="schematron-get-full-path-3"><axsl:for-each select="ancestor-or-self::*"><axsl:text>/</axsl:text><axsl:value-of select="name(.)"/><axsl:if test="parent::*"><axsl:text>[</axsl:text><axsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1"/><axsl:text>]</axsl:text></axsl:if></axsl:for-each><axsl:if test="not(self::*)"><axsl:text/>/@<axsl:value-of select="name(.)"/></axsl:if></axsl:template>

<!--MODE: GENERATE-ID-2 -->
<axsl:template match="/" mode="generate-id-2">U</axsl:template><axsl:template match="*" mode="generate-id-2" priority="2"><axsl:text>U</axsl:text><axsl:number level="multiple" count="*"/></axsl:template><axsl:template match="node()" mode="generate-id-2"><axsl:text>U.</axsl:text><axsl:number level="multiple" count="*"/><axsl:text>n</axsl:text><axsl:number count="node()"/></axsl:template><axsl:template match="@*" mode="generate-id-2"><axsl:text>U.</axsl:text><axsl:number level="multiple" count="*"/><axsl:text>_</axsl:text><axsl:value-of select="string-length(local-name(.))"/><axsl:text>_</axsl:text><axsl:value-of select="translate(name(),':','.')"/></axsl:template><!--Strip characters--><axsl:template match="text()" priority="-1"/>

<!--SCHEMA METADATA-->
<axsl:template match="/"><svrl:schematron-output xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" title="HPXML Schematron Validator: HPXML.xsd" schemaVersion=""><axsl:comment><axsl:value-of select="$archiveDirParameter"/>   
		 <axsl:value-of select="$archiveNameParameter"/>  
		 <axsl:value-of select="$fileNameParameter"/>  
		 <axsl:value-of select="$fileDirParameter"/></axsl:comment><svrl:ns-prefix-in-attribute-values uri="http://hpxmlonline.com/2019/10" prefix="h"/><svrl:active-pattern><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M2"/></svrl:schematron-output></axsl:template>

<!--SCHEMATRON PATTERNS-->
<svrl:text xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron">HPXML Schematron Validator: HPXML.xsd</svrl:text>

<!--PATTERN -->


	<!--RULE -->
<axsl:template match="/h:HPXML/h:XMLTransactionHeaderInformation" priority="1101" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:XMLTransactionHeaderInformation"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Transaction[text()=&quot;create&quot; or text()=&quot;update&quot;] or not(h:Transaction)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Transaction[text()=&quot;create&quot; or text()=&quot;update&quot;] or not(h:Transaction)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Transaction to be 'create' or 'update'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:Site" priority="1100" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:Site"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:eGridRegion[text()=&quot;Alaska&quot; or text()=&quot;Eastern&quot; or text()=&quot;ERCOT&quot; or text()=&quot;Hawaii&quot; or text()=&quot;Western&quot; or text()=&quot;Puerto Rico&quot;] or not(h:eGridRegion)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:eGridRegion[text()=&quot;Alaska&quot; or text()=&quot;Eastern&quot; or text()=&quot;ERCOT&quot; or text()=&quot;Hawaii&quot; or text()=&quot;Western&quot; or text()=&quot;Puerto Rico&quot;] or not(h:eGridRegion)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected eGridRegion to be 'Alaska' or 'Eastern' or 'ERCOT' or 'Hawaii' or 'Western' or 'Puerto Rico'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:eGridSubregion[text()=&quot;AKGD&quot; or text()=&quot;AKMS&quot; or text()=&quot;AZNM&quot; or text()=&quot;CAMX&quot; or text()=&quot;ERCT&quot; or text()=&quot;FRCC&quot; or text()=&quot;HIMS&quot; or text()=&quot;HIOA&quot; or text()=&quot;MROE&quot; or text()=&quot;MROW&quot; or text()=&quot;NEWE&quot; or text()=&quot;NWPP&quot; or text()=&quot;NYCW&quot; or text()=&quot;NYLI&quot; or text()=&quot;NYUP&quot; or text()=&quot;PRMS&quot; or text()=&quot;RFCE&quot; or text()=&quot;RFCM&quot; or text()=&quot;RFCW&quot; or text()=&quot;RMPA&quot; or text()=&quot;SPNO&quot; or text()=&quot;SPSO&quot; or text()=&quot;SRMV&quot; or text()=&quot;SRMW&quot; or text()=&quot;SRSO&quot; or text()=&quot;SRTV&quot; or text()=&quot;SRVC&quot;] or not(h:eGridSubregion)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:eGridSubregion[text()=&quot;AKGD&quot; or text()=&quot;AKMS&quot; or text()=&quot;AZNM&quot; or text()=&quot;CAMX&quot; or text()=&quot;ERCT&quot; or text()=&quot;FRCC&quot; or text()=&quot;HIMS&quot; or text()=&quot;HIOA&quot; or text()=&quot;MROE&quot; or text()=&quot;MROW&quot; or text()=&quot;NEWE&quot; or text()=&quot;NWPP&quot; or text()=&quot;NYCW&quot; or text()=&quot;NYLI&quot; or text()=&quot;NYUP&quot; or text()=&quot;PRMS&quot; or text()=&quot;RFCE&quot; or text()=&quot;RFCM&quot; or text()=&quot;RFCW&quot; or text()=&quot;RMPA&quot; or text()=&quot;SPNO&quot; or text()=&quot;SPSO&quot; or text()=&quot;SRMV&quot; or text()=&quot;SRMW&quot; or text()=&quot;SRSO&quot; or text()=&quot;SRTV&quot; or text()=&quot;SRVC&quot;] or not(h:eGridSubregion)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected eGridSubregion to be 'AKGD' or 'AKMS' or 'AZNM' or 'CAMX' or 'ERCT' or 'FRCC' or 'HIMS' or 'HIOA' or 'MROE' or 'MROW' or 'NEWE' or 'NWPP' or 'NYCW' or 'NYLI' or 'NYUP' or 'PRMS' or 'RFCE' or 'RFCM' or 'RFCW' or 'RMPA' or 'SPNO' or 'SPSO' or 'SRMV' or 'SRMW' or 'SRSO' or 'SRTV' or 'SRVC'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:CambiumRegionGEA[text()=&quot;AZNMc&quot; or text()=&quot;CAMXc&quot; or text()=&quot;ERCTc&quot; or text()=&quot;FRCCc&quot; or text()=&quot;MROEc&quot; or text()=&quot;MROWc&quot; or text()=&quot;NEWEc&quot; or text()=&quot;NWPPc&quot; or text()=&quot;NYSTc&quot; or text()=&quot;RFCEc&quot; or text()=&quot;RFCMc&quot; or text()=&quot;RFCWc&quot; or text()=&quot;RMPAc&quot; or text()=&quot;SPNOc&quot; or text()=&quot;SPSOc&quot; or text()=&quot;SRMVc&quot; or text()=&quot;SRMWc&quot; or text()=&quot;SRSOc&quot; or text()=&quot;SRTVc&quot; or text()=&quot;SRVCc&quot;] or not(h:CambiumRegionGEA)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:CambiumRegionGEA[text()=&quot;AZNMc&quot; or text()=&quot;CAMXc&quot; or text()=&quot;ERCTc&quot; or text()=&quot;FRCCc&quot; or text()=&quot;MROEc&quot; or text()=&quot;MROWc&quot; or text()=&quot;NEWEc&quot; or text()=&quot;NWPPc&quot; or text()=&quot;NYSTc&quot; or text()=&quot;RFCEc&quot; or text()=&quot;RFCMc&quot; or text()=&quot;RFCWc&quot; or text()=&quot;RMPAc&quot; or text()=&quot;SPNOc&quot; or text()=&quot;SPSOc&quot; or text()=&quot;SRMVc&quot; or text()=&quot;SRMWc&quot; or text()=&quot;SRSOc&quot; or text()=&quot;SRTVc&quot; or text()=&quot;SRVCc&quot;] or not(h:CambiumRegionGEA)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CambiumRegionGEA to be 'AZNMc' or 'CAMXc' or 'ERCTc' or 'FRCCc' or 'MROEc' or 'MROWc' or 'NEWEc' or 'NWPPc' or 'NYSTc' or 'RFCEc' or 'RFCMc' or 'RFCWc' or 'RMPAc' or 'SPNOc' or 'SPSOc' or 'SRMVc' or 'SRMWc' or 'SRSOc' or 'SRTVc' or 'SRVCc'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:ProjectStatus" priority="1099" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:ProjectStatus"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:EventType[text()=&quot;audit&quot; or text()=&quot;proposed workscope&quot; or text()=&quot;approved workscope&quot; or text()=&quot;construction-period testing/daily test out&quot; or text()=&quot;job completion testing/final inspection&quot; or text()=&quot;quality assurance/monitoring&quot; or text()=&quot;preconstruction&quot;] or not(h:EventType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:EventType[text()=&quot;audit&quot; or text()=&quot;proposed workscope&quot; or text()=&quot;approved workscope&quot; or text()=&quot;construction-period testing/daily test out&quot; or text()=&quot;job completion testing/final inspection&quot; or text()=&quot;quality assurance/monitoring&quot; or text()=&quot;preconstruction&quot;] or not(h:EventType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected EventType to be 'audit' or 'proposed workscope' or 'approved workscope' or 'construction-period testing/daily test out' or 'job completion testing/final inspection' or 'quality assurance/monitoring' or 'preconstruction'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:BuildingSummary/h:Site" priority="1098" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:BuildingSummary/h:Site"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:SiteType[text()=&quot;rural&quot; or text()=&quot;suburban&quot; or text()=&quot;urban&quot;] or not(h:SiteType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:SiteType[text()=&quot;rural&quot; or text()=&quot;suburban&quot; or text()=&quot;urban&quot;] or not(h:SiteType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SiteType to be 'rural' or 'suburban' or 'urban'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Surroundings[text()=&quot;stand-alone&quot; or text()=&quot;attached on one side&quot; or text()=&quot;attached on two sides&quot; or text()=&quot;attached on three sides&quot;] or not(h:Surroundings)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Surroundings[text()=&quot;stand-alone&quot; or text()=&quot;attached on one side&quot; or text()=&quot;attached on two sides&quot; or text()=&quot;attached on three sides&quot;] or not(h:Surroundings)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Surroundings to be 'stand-alone' or 'attached on one side' or 'attached on two sides' or 'attached on three sides'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:VerticalSurroundings[text()=&quot;unit above&quot; or text()=&quot;unit below&quot; or text()=&quot;unit above and below&quot; or text()=&quot;no units above or below&quot;] or not(h:VerticalSurroundings)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:VerticalSurroundings[text()=&quot;unit above&quot; or text()=&quot;unit below&quot; or text()=&quot;unit above and below&quot; or text()=&quot;no units above or below&quot;] or not(h:VerticalSurroundings)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected VerticalSurroundings to be 'unit above' or 'unit below' or 'unit above and below' or 'no units above or below'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:ShieldingofHome[text()=&quot;well-shielded&quot; or text()=&quot;normal&quot; or text()=&quot;exposed&quot;] or not(h:ShieldingofHome)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:ShieldingofHome[text()=&quot;well-shielded&quot; or text()=&quot;normal&quot; or text()=&quot;exposed&quot;] or not(h:ShieldingofHome)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ShieldingofHome to be 'well-shielded' or 'normal' or 'exposed'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AzimuthOfFrontOfHome) &gt;= 0 or not(h:AzimuthOfFrontOfHome)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AzimuthOfFrontOfHome) &gt;= 0 or not(h:AzimuthOfFrontOfHome)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AzimuthOfFrontOfHome to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AzimuthOfFrontOfHome) &lt; 360 or not(h:AzimuthOfFrontOfHome)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AzimuthOfFrontOfHome) &lt; 360 or not(h:AzimuthOfFrontOfHome)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AzimuthOfFrontOfHome to be less than 360</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:BuildingSummary/h:Site/h:FuelTypesAvailable" priority="1097" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:BuildingSummary/h:Site/h:FuelTypesAvailable"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Fuel[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:Fuel)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Fuel[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:Fuel)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Fuel to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:BuildingSummary/h:BuildingOccupancy" priority="1096" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:BuildingSummary/h:BuildingOccupancy"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:NumberofResidents) &gt;= 0 or not(h:NumberofResidents)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:NumberofResidents) &gt;= 0 or not(h:NumberofResidents)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected NumberofResidents to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:BuildingSummary/h:BuildingConstruction" priority="1095" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:BuildingSummary/h:BuildingConstruction"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:ResidentialFacilityType[text()=&quot;single-family detached&quot; or text()=&quot;single-family attached&quot; or text()=&quot;manufactured home&quot; or text()=&quot;2-4 unit building&quot; or text()=&quot;5+ unit building&quot; or text()=&quot;multi-family - uncategorized&quot; or text()=&quot;multi-family - town homes&quot; or text()=&quot;multi-family - condos&quot; or text()=&quot;apartment unit&quot; or text()=&quot;studio unit&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot;] or not(h:ResidentialFacilityType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:ResidentialFacilityType[text()=&quot;single-family detached&quot; or text()=&quot;single-family attached&quot; or text()=&quot;manufactured home&quot; or text()=&quot;2-4 unit building&quot; or text()=&quot;5+ unit building&quot; or text()=&quot;multi-family - uncategorized&quot; or text()=&quot;multi-family - town homes&quot; or text()=&quot;multi-family - condos&quot; or text()=&quot;apartment unit&quot; or text()=&quot;studio unit&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot;] or not(h:ResidentialFacilityType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ResidentialFacilityType to be 'single-family detached' or 'single-family attached' or 'manufactured home' or '2-4 unit building' or '5+ unit building' or 'multi-family - uncategorized' or 'multi-family - town homes' or 'multi-family - condos' or 'apartment unit' or 'studio unit' or 'other' or 'unknown'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:NumberofConditionedFloors) &gt;= 0 or not(h:NumberofConditionedFloors)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:NumberofConditionedFloors) &gt;= 0 or not(h:NumberofConditionedFloors)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected NumberofConditionedFloors to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:NumberofConditionedFloorsAboveGrade) &gt;= 0 or not(h:NumberofConditionedFloorsAboveGrade)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:NumberofConditionedFloorsAboveGrade) &gt;= 0 or not(h:NumberofConditionedFloorsAboveGrade)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected NumberofConditionedFloorsAboveGrade to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AverageCeilingHeight) &gt;= 0 or not(h:AverageCeilingHeight)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AverageCeilingHeight) &gt;= 0 or not(h:AverageCeilingHeight)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AverageCeilingHeight to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:NumberofBedrooms) &gt;= 0 or not(h:NumberofBedrooms)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:NumberofBedrooms) &gt;= 0 or not(h:NumberofBedrooms)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected NumberofBedrooms to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:NumberofBathrooms) &gt; 0 or not(h:NumberofBathrooms)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:NumberofBathrooms) &gt; 0 or not(h:NumberofBathrooms)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected NumberofBathrooms to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:ConditionedFloorArea) &gt; 0 or not(h:ConditionedFloorArea)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:ConditionedFloorArea) &gt; 0 or not(h:ConditionedFloorArea)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ConditionedFloorArea to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:ConditionedBuildingVolume) &gt; 0 or not(h:ConditionedBuildingVolume)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:ConditionedBuildingVolume) &gt; 0 or not(h:ConditionedBuildingVolume)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ConditionedBuildingVolume to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:ClimateandRiskZones/h:ClimateZoneIECC" priority="1094" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:ClimateandRiskZones/h:ClimateZoneIECC"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Year[text()=&quot;2021&quot; or text()=&quot;2018&quot; or text()=&quot;2015&quot; or text()=&quot;2012&quot; or text()=&quot;2009&quot; or text()=&quot;2006&quot; or text()=&quot;2003&quot;] or not(h:Year)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Year[text()=&quot;2021&quot; or text()=&quot;2018&quot; or text()=&quot;2015&quot; or text()=&quot;2012&quot; or text()=&quot;2009&quot; or text()=&quot;2006&quot; or text()=&quot;2003&quot;] or not(h:Year)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Year to be '2021' or '2018' or '2015' or '2012' or '2009' or '2006' or '2003'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:ClimateZone[text()=&quot;1A&quot; or text()=&quot;1B&quot; or text()=&quot;1C&quot; or text()=&quot;2A&quot; or text()=&quot;2B&quot; or text()=&quot;2C&quot; or text()=&quot;3A&quot; or text()=&quot;3B&quot; or text()=&quot;3C&quot; or text()=&quot;4A&quot; or text()=&quot;4B&quot; or text()=&quot;4C&quot; or text()=&quot;5A&quot; or text()=&quot;5B&quot; or text()=&quot;5C&quot; or text()=&quot;6A&quot; or text()=&quot;6B&quot; or text()=&quot;6C&quot; or text()=&quot;7&quot; or text()=&quot;8&quot;] or not(h:ClimateZone)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:ClimateZone[text()=&quot;1A&quot; or text()=&quot;1B&quot; or text()=&quot;1C&quot; or text()=&quot;2A&quot; or text()=&quot;2B&quot; or text()=&quot;2C&quot; or text()=&quot;3A&quot; or text()=&quot;3B&quot; or text()=&quot;3C&quot; or text()=&quot;4A&quot; or text()=&quot;4B&quot; or text()=&quot;4C&quot; or text()=&quot;5A&quot; or text()=&quot;5B&quot; or text()=&quot;5C&quot; or text()=&quot;6A&quot; or text()=&quot;6B&quot; or text()=&quot;6C&quot; or text()=&quot;7&quot; or text()=&quot;8&quot;] or not(h:ClimateZone)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ClimateZone to be '1A' or '1B' or '1C' or '2A' or '2B' or '2C' or '3A' or '3B' or '3C' or '4A' or '4B' or '4C' or '5A' or '5B' or '5C' or '6A' or '6B' or '6C' or '7' or '8'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:AirInfiltration/h:AirInfiltrationMeasurement" priority="1093" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:AirInfiltration/h:AirInfiltrationMeasurement"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:HousePressure) &gt; 0 or not(h:HousePressure)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:HousePressure) &gt; 0 or not(h:HousePressure)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected HousePressure to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:AirInfiltration/h:AirInfiltrationMeasurement/h:BuildingAirLeakage" priority="1092" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:AirInfiltration/h:AirInfiltrationMeasurement/h:BuildingAirLeakage"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:UnitofMeasure[text()=&quot;CFM&quot; or text()=&quot;CFMnatural&quot; or text()=&quot;ACH&quot; or text()=&quot;ACHnatural&quot;] or not(h:UnitofMeasure)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:UnitofMeasure[text()=&quot;CFM&quot; or text()=&quot;CFMnatural&quot; or text()=&quot;ACH&quot; or text()=&quot;ACHnatural&quot;] or not(h:UnitofMeasure)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected UnitofMeasure to be 'CFM' or 'CFMnatural' or 'ACH' or 'ACHnatural'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AirLeakage) &gt; 0 or not(h:AirLeakage)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AirLeakage) &gt; 0 or not(h:AirLeakage)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AirLeakage to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Attics/h:Attic/h:VentilationRate" priority="1091" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Attics/h:Attic/h:VentilationRate"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:UnitofMeasure[text()=&quot;SLA&quot; or text()=&quot;ACHnatural&quot; or text()=&quot;CFM per sq.ft.&quot;] or not(h:UnitofMeasure)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:UnitofMeasure[text()=&quot;SLA&quot; or text()=&quot;ACHnatural&quot; or text()=&quot;CFM per sq.ft.&quot;] or not(h:UnitofMeasure)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected UnitofMeasure to be 'SLA' or 'ACHnatural' or 'CFM per sq.ft.'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Value) &gt; 0 or not(h:Value)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Value) &gt; 0 or not(h:Value)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Value to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Foundations/h:Foundation/h:VentilationRate" priority="1090" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Foundations/h:Foundation/h:VentilationRate"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:UnitofMeasure[text()=&quot;SLA&quot; or text()=&quot;ACHnatural&quot; or text()=&quot;CFM per sq.ft.&quot;] or not(h:UnitofMeasure)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:UnitofMeasure[text()=&quot;SLA&quot; or text()=&quot;ACHnatural&quot; or text()=&quot;CFM per sq.ft.&quot;] or not(h:UnitofMeasure)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected UnitofMeasure to be 'SLA' or 'ACHnatural' or 'CFM per sq.ft.'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Value) &gt; 0 or not(h:Value)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Value) &gt; 0 or not(h:Value)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Value to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Roofs/h:Roof" priority="1089" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Roofs/h:Roof"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:InteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:InteriorAdjacentTo)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:InteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:InteriorAdjacentTo)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected InteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Area) &gt; 0 or not(h:Area)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Area) &gt; 0 or not(h:Area)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Area to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be less than 360</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:RoofType[text()=&quot;shingles&quot; or text()=&quot;slate or tile shingles&quot; or text()=&quot;wood shingles or shakes&quot; or text()=&quot;asphalt or fiberglass shingles&quot; or text()=&quot;metal surfacing&quot; or text()=&quot;expanded polystyrene sheathing&quot; or text()=&quot;plastic/rubber/synthetic sheeting&quot; or text()=&quot;concrete&quot; or text()=&quot;cool roof&quot; or text()=&quot;green roof&quot; or text()=&quot;no one major type&quot; or text()=&quot;other&quot;] or not(h:RoofType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:RoofType[text()=&quot;shingles&quot; or text()=&quot;slate or tile shingles&quot; or text()=&quot;wood shingles or shakes&quot; or text()=&quot;asphalt or fiberglass shingles&quot; or text()=&quot;metal surfacing&quot; or text()=&quot;expanded polystyrene sheathing&quot; or text()=&quot;plastic/rubber/synthetic sheeting&quot; or text()=&quot;concrete&quot; or text()=&quot;cool roof&quot; or text()=&quot;green roof&quot; or text()=&quot;no one major type&quot; or text()=&quot;other&quot;] or not(h:RoofType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected RoofType to be 'shingles' or 'slate or tile shingles' or 'wood shingles or shakes' or 'asphalt or fiberglass shingles' or 'metal surfacing' or 'expanded polystyrene sheathing' or 'plastic/rubber/synthetic sheeting' or 'concrete' or 'cool roof' or 'green roof' or 'no one major type' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:RoofColor[text()=&quot;light&quot; or text()=&quot;medium&quot; or text()=&quot;medium dark&quot; or text()=&quot;dark&quot; or text()=&quot;reflective&quot;] or not(h:RoofColor)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:RoofColor[text()=&quot;light&quot; or text()=&quot;medium&quot; or text()=&quot;medium dark&quot; or text()=&quot;dark&quot; or text()=&quot;reflective&quot;] or not(h:RoofColor)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected RoofColor to be 'light' or 'medium' or 'medium dark' or 'dark' or 'reflective'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SolarAbsorptance) &gt;= 0 or not(h:SolarAbsorptance)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SolarAbsorptance) &gt;= 0 or not(h:SolarAbsorptance)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SolarAbsorptance to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SolarAbsorptance) &lt;= 1 or not(h:SolarAbsorptance)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SolarAbsorptance) &lt;= 1 or not(h:SolarAbsorptance)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SolarAbsorptance to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Emittance) &gt;= 0 or not(h:Emittance)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Emittance) &gt;= 0 or not(h:Emittance)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Emittance to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Emittance) &lt;= 1 or not(h:Emittance)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Emittance) &lt;= 1 or not(h:Emittance)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Emittance to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Pitch) &gt;= 0 or not(h:Pitch)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Pitch) &gt;= 0 or not(h:Pitch)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Pitch to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:RadiantBarrierGrade) &gt;= 1 or not(h:RadiantBarrierGrade)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:RadiantBarrierGrade) &gt;= 1 or not(h:RadiantBarrierGrade)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected RadiantBarrierGrade to be greater than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:RadiantBarrierGrade) &lt;= 3 or not(h:RadiantBarrierGrade)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:RadiantBarrierGrade) &lt;= 3 or not(h:RadiantBarrierGrade)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected RadiantBarrierGrade to be less than or equal to 3</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Roofs/h:Roof/h:InteriorFinish" priority="1088" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Roofs/h:Roof/h:InteriorFinish"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Type[text()=&quot;gypsum board&quot; or text()=&quot;gypsum composite board&quot; or text()=&quot;plaster&quot; or text()=&quot;wood&quot; or text()=&quot;other&quot; or text()=&quot;none&quot;] or not(h:Type)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Type[text()=&quot;gypsum board&quot; or text()=&quot;gypsum composite board&quot; or text()=&quot;plaster&quot; or text()=&quot;wood&quot; or text()=&quot;other&quot; or text()=&quot;none&quot;] or not(h:Type)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Type to be 'gypsum board' or 'gypsum composite board' or 'plaster' or 'wood' or 'other' or 'none'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Thickness) &gt;= 0 or not(h:Thickness)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Thickness) &gt;= 0 or not(h:Thickness)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Thickness to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Roofs/h:Roof/h:Insulation" priority="1087" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Roofs/h:Roof/h:Insulation"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AssemblyEffectiveRValue) &gt; 0 or not(h:AssemblyEffectiveRValue)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AssemblyEffectiveRValue) &gt; 0 or not(h:AssemblyEffectiveRValue)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AssemblyEffectiveRValue to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:RimJoists/h:RimJoist" priority="1086" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:RimJoists/h:RimJoist"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:ExteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:ExteriorAdjacentTo)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:ExteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:ExteriorAdjacentTo)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ExteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:InteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:InteriorAdjacentTo)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:InteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:InteriorAdjacentTo)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected InteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Area) &gt; 0 or not(h:Area)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Area) &gt; 0 or not(h:Area)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Area to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be less than 360</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Siding[text()=&quot;wood siding&quot; or text()=&quot;stucco&quot; or text()=&quot;synthetic stucco&quot; or text()=&quot;vinyl siding&quot; or text()=&quot;aluminum siding&quot; or text()=&quot;brick veneer&quot; or text()=&quot;asbestos siding&quot; or text()=&quot;fiber cement siding&quot; or text()=&quot;composite shingle siding&quot; or text()=&quot;masonite siding&quot; or text()=&quot;other&quot; or text()=&quot;none&quot;] or not(h:Siding)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Siding[text()=&quot;wood siding&quot; or text()=&quot;stucco&quot; or text()=&quot;synthetic stucco&quot; or text()=&quot;vinyl siding&quot; or text()=&quot;aluminum siding&quot; or text()=&quot;brick veneer&quot; or text()=&quot;asbestos siding&quot; or text()=&quot;fiber cement siding&quot; or text()=&quot;composite shingle siding&quot; or text()=&quot;masonite siding&quot; or text()=&quot;other&quot; or text()=&quot;none&quot;] or not(h:Siding)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Siding to be 'wood siding' or 'stucco' or 'synthetic stucco' or 'vinyl siding' or 'aluminum siding' or 'brick veneer' or 'asbestos siding' or 'fiber cement siding' or 'composite shingle siding' or 'masonite siding' or 'other' or 'none'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Color[text()=&quot;light&quot; or text()=&quot;medium&quot; or text()=&quot;medium dark&quot; or text()=&quot;dark&quot; or text()=&quot;reflective&quot;] or not(h:Color)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Color[text()=&quot;light&quot; or text()=&quot;medium&quot; or text()=&quot;medium dark&quot; or text()=&quot;dark&quot; or text()=&quot;reflective&quot;] or not(h:Color)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Color to be 'light' or 'medium' or 'medium dark' or 'dark' or 'reflective'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SolarAbsorptance) &gt;= 0 or not(h:SolarAbsorptance)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SolarAbsorptance) &gt;= 0 or not(h:SolarAbsorptance)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SolarAbsorptance to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SolarAbsorptance) &lt;= 1 or not(h:SolarAbsorptance)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SolarAbsorptance) &lt;= 1 or not(h:SolarAbsorptance)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SolarAbsorptance to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Emittance) &gt;= 0 or not(h:Emittance)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Emittance) &gt;= 0 or not(h:Emittance)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Emittance to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Emittance) &lt;= 1 or not(h:Emittance)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Emittance) &lt;= 1 or not(h:Emittance)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Emittance to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:RimJoists/h:RimJoist/h:Insulation" priority="1085" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:RimJoists/h:RimJoist/h:Insulation"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AssemblyEffectiveRValue) &gt; 0 or not(h:AssemblyEffectiveRValue)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AssemblyEffectiveRValue) &gt; 0 or not(h:AssemblyEffectiveRValue)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AssemblyEffectiveRValue to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Walls/h:Wall" priority="1084" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Walls/h:Wall"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:ExteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:ExteriorAdjacentTo)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:ExteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:ExteriorAdjacentTo)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ExteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:InteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:InteriorAdjacentTo)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:InteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:InteriorAdjacentTo)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected InteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:AtticWallType[text()=&quot;gable&quot; or text()=&quot;knee wall&quot; or text()=&quot;other&quot;] or not(h:AtticWallType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:AtticWallType[text()=&quot;gable&quot; or text()=&quot;knee wall&quot; or text()=&quot;other&quot;] or not(h:AtticWallType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AtticWallType to be 'gable' or 'knee wall' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Area) &gt; 0 or not(h:Area)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Area) &gt; 0 or not(h:Area)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Area to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be less than 360</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Siding[text()=&quot;wood siding&quot; or text()=&quot;stucco&quot; or text()=&quot;synthetic stucco&quot; or text()=&quot;vinyl siding&quot; or text()=&quot;aluminum siding&quot; or text()=&quot;brick veneer&quot; or text()=&quot;asbestos siding&quot; or text()=&quot;fiber cement siding&quot; or text()=&quot;composite shingle siding&quot; or text()=&quot;masonite siding&quot; or text()=&quot;other&quot; or text()=&quot;none&quot;] or not(h:Siding)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Siding[text()=&quot;wood siding&quot; or text()=&quot;stucco&quot; or text()=&quot;synthetic stucco&quot; or text()=&quot;vinyl siding&quot; or text()=&quot;aluminum siding&quot; or text()=&quot;brick veneer&quot; or text()=&quot;asbestos siding&quot; or text()=&quot;fiber cement siding&quot; or text()=&quot;composite shingle siding&quot; or text()=&quot;masonite siding&quot; or text()=&quot;other&quot; or text()=&quot;none&quot;] or not(h:Siding)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Siding to be 'wood siding' or 'stucco' or 'synthetic stucco' or 'vinyl siding' or 'aluminum siding' or 'brick veneer' or 'asbestos siding' or 'fiber cement siding' or 'composite shingle siding' or 'masonite siding' or 'other' or 'none'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Color[text()=&quot;light&quot; or text()=&quot;medium&quot; or text()=&quot;medium dark&quot; or text()=&quot;dark&quot; or text()=&quot;reflective&quot;] or not(h:Color)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Color[text()=&quot;light&quot; or text()=&quot;medium&quot; or text()=&quot;medium dark&quot; or text()=&quot;dark&quot; or text()=&quot;reflective&quot;] or not(h:Color)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Color to be 'light' or 'medium' or 'medium dark' or 'dark' or 'reflective'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SolarAbsorptance) &gt;= 0 or not(h:SolarAbsorptance)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SolarAbsorptance) &gt;= 0 or not(h:SolarAbsorptance)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SolarAbsorptance to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SolarAbsorptance) &lt;= 1 or not(h:SolarAbsorptance)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SolarAbsorptance) &lt;= 1 or not(h:SolarAbsorptance)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SolarAbsorptance to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Emittance) &gt;= 0 or not(h:Emittance)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Emittance) &gt;= 0 or not(h:Emittance)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Emittance to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Emittance) &lt;= 1 or not(h:Emittance)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Emittance) &lt;= 1 or not(h:Emittance)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Emittance to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Walls/h:Wall/h:InteriorFinish" priority="1083" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Walls/h:Wall/h:InteriorFinish"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Type[text()=&quot;gypsum board&quot; or text()=&quot;gypsum composite board&quot; or text()=&quot;plaster&quot; or text()=&quot;wood&quot; or text()=&quot;other&quot; or text()=&quot;none&quot;] or not(h:Type)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Type[text()=&quot;gypsum board&quot; or text()=&quot;gypsum composite board&quot; or text()=&quot;plaster&quot; or text()=&quot;wood&quot; or text()=&quot;other&quot; or text()=&quot;none&quot;] or not(h:Type)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Type to be 'gypsum board' or 'gypsum composite board' or 'plaster' or 'wood' or 'other' or 'none'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Thickness) &gt;= 0 or not(h:Thickness)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Thickness) &gt;= 0 or not(h:Thickness)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Thickness to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Walls/h:Wall/h:Insulation" priority="1082" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Walls/h:Wall/h:Insulation"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AssemblyEffectiveRValue) &gt; 0 or not(h:AssemblyEffectiveRValue)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AssemblyEffectiveRValue) &gt; 0 or not(h:AssemblyEffectiveRValue)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AssemblyEffectiveRValue to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FoundationWalls/h:FoundationWall" priority="1081" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FoundationWalls/h:FoundationWall"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:ExteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:ExteriorAdjacentTo)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:ExteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:ExteriorAdjacentTo)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ExteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:InteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:InteriorAdjacentTo)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:InteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:InteriorAdjacentTo)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected InteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Type[text()=&quot;solid concrete&quot; or text()=&quot;concrete block&quot; or text()=&quot;concrete block foam core&quot; or text()=&quot;concrete block vermiculite core&quot; or text()=&quot;concrete block perlite core&quot; or text()=&quot;concrete block solid core&quot; or text()=&quot;double brick&quot; or text()=&quot;wood&quot;] or not(h:Type)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Type[text()=&quot;solid concrete&quot; or text()=&quot;concrete block&quot; or text()=&quot;concrete block foam core&quot; or text()=&quot;concrete block vermiculite core&quot; or text()=&quot;concrete block perlite core&quot; or text()=&quot;concrete block solid core&quot; or text()=&quot;double brick&quot; or text()=&quot;wood&quot;] or not(h:Type)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Type to be 'solid concrete' or 'concrete block' or 'concrete block foam core' or 'concrete block vermiculite core' or 'concrete block perlite core' or 'concrete block solid core' or 'double brick' or 'wood'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Length) &gt;= 0 or not(h:Length)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Length) &gt;= 0 or not(h:Length)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Length to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Height) &gt;= 0 or not(h:Height)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Height) &gt;= 0 or not(h:Height)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Height to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Area) &gt; 0 or not(h:Area)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Area) &gt; 0 or not(h:Area)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Area to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be less than 360</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Thickness) &gt;= 0 or not(h:Thickness)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Thickness) &gt;= 0 or not(h:Thickness)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Thickness to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:DepthBelowGrade) &gt;= 0 or not(h:DepthBelowGrade)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:DepthBelowGrade) &gt;= 0 or not(h:DepthBelowGrade)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected DepthBelowGrade to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FoundationWalls/h:FoundationWall/h:InteriorFinish" priority="1080" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FoundationWalls/h:FoundationWall/h:InteriorFinish"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Type[text()=&quot;gypsum board&quot; or text()=&quot;gypsum composite board&quot; or text()=&quot;plaster&quot; or text()=&quot;wood&quot; or text()=&quot;other&quot; or text()=&quot;none&quot;] or not(h:Type)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Type[text()=&quot;gypsum board&quot; or text()=&quot;gypsum composite board&quot; or text()=&quot;plaster&quot; or text()=&quot;wood&quot; or text()=&quot;other&quot; or text()=&quot;none&quot;] or not(h:Type)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Type to be 'gypsum board' or 'gypsum composite board' or 'plaster' or 'wood' or 'other' or 'none'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Thickness) &gt;= 0 or not(h:Thickness)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Thickness) &gt;= 0 or not(h:Thickness)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Thickness to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FoundationWalls/h:FoundationWall/h:Insulation/h:Layer" priority="1079" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FoundationWalls/h:FoundationWall/h:Insulation/h:Layer"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:DistanceToTopOfInsulation) &gt;= 0 or not(h:DistanceToTopOfInsulation)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:DistanceToTopOfInsulation) &gt;= 0 or not(h:DistanceToTopOfInsulation)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected DistanceToTopOfInsulation to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:DistanceToBottomOfInsulation) &gt;= 0 or not(h:DistanceToBottomOfInsulation)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:DistanceToBottomOfInsulation) &gt;= 0 or not(h:DistanceToBottomOfInsulation)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected DistanceToBottomOfInsulation to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:InstallationType[text()=&quot;cavity&quot; or text()=&quot;continuous&quot; or text()=&quot;continuous - interior&quot; or text()=&quot;continuous - exterior&quot;] or not(h:InstallationType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:InstallationType[text()=&quot;cavity&quot; or text()=&quot;continuous&quot; or text()=&quot;continuous - interior&quot; or text()=&quot;continuous - exterior&quot;] or not(h:InstallationType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected InstallationType to be 'cavity' or 'continuous' or 'continuous - interior' or 'continuous - exterior'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:NominalRValue) &gt;= 0 or not(h:NominalRValue)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:NominalRValue) &gt;= 0 or not(h:NominalRValue)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected NominalRValue to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FoundationWalls/h:FoundationWall/h:Insulation" priority="1078" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FoundationWalls/h:FoundationWall/h:Insulation"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AssemblyEffectiveRValue) &gt; 0 or not(h:AssemblyEffectiveRValue)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AssemblyEffectiveRValue) &gt; 0 or not(h:AssemblyEffectiveRValue)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AssemblyEffectiveRValue to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FrameFloors/h:FrameFloor" priority="1077" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FrameFloors/h:FrameFloor"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:ExteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:ExteriorAdjacentTo)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:ExteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:ExteriorAdjacentTo)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ExteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:InteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:InteriorAdjacentTo)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:InteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:InteriorAdjacentTo)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected InteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Area) &gt; 0 or not(h:Area)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Area) &gt; 0 or not(h:Area)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Area to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FrameFloors/h:FrameFloor/h:InteriorFinish" priority="1076" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FrameFloors/h:FrameFloor/h:InteriorFinish"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Type[text()=&quot;gypsum board&quot; or text()=&quot;gypsum composite board&quot; or text()=&quot;plaster&quot; or text()=&quot;wood&quot; or text()=&quot;other&quot; or text()=&quot;none&quot;] or not(h:Type)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Type[text()=&quot;gypsum board&quot; or text()=&quot;gypsum composite board&quot; or text()=&quot;plaster&quot; or text()=&quot;wood&quot; or text()=&quot;other&quot; or text()=&quot;none&quot;] or not(h:Type)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Type to be 'gypsum board' or 'gypsum composite board' or 'plaster' or 'wood' or 'other' or 'none'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Thickness) &gt;= 0 or not(h:Thickness)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Thickness) &gt;= 0 or not(h:Thickness)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Thickness to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FrameFloors/h:FrameFloor/h:Insulation" priority="1075" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FrameFloors/h:FrameFloor/h:Insulation"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AssemblyEffectiveRValue) &gt; 0 or not(h:AssemblyEffectiveRValue)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AssemblyEffectiveRValue) &gt; 0 or not(h:AssemblyEffectiveRValue)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AssemblyEffectiveRValue to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Slabs/h:Slab" priority="1074" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Slabs/h:Slab"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:InteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:InteriorAdjacentTo)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:InteriorAdjacentTo[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:InteriorAdjacentTo)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected InteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Area) &gt; 0 or not(h:Area)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Area) &gt; 0 or not(h:Area)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Area to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Thickness) &gt;= 0 or not(h:Thickness)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Thickness) &gt;= 0 or not(h:Thickness)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Thickness to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Perimeter) &gt;= 0 or not(h:Perimeter)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Perimeter) &gt;= 0 or not(h:Perimeter)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Perimeter to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:ExposedPerimeter) &gt;= 0 or not(h:ExposedPerimeter)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:ExposedPerimeter) &gt;= 0 or not(h:ExposedPerimeter)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ExposedPerimeter to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:DepthBelowGrade) &gt;= 0 or not(h:DepthBelowGrade)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:DepthBelowGrade) &gt;= 0 or not(h:DepthBelowGrade)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected DepthBelowGrade to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Slabs/h:Slab/h:PerimeterInsulation/h:Layer" priority="1073" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Slabs/h:Slab/h:PerimeterInsulation/h:Layer"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:InsulationDepth) &gt;= 0 or not(h:InsulationDepth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:InsulationDepth) &gt;= 0 or not(h:InsulationDepth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected InsulationDepth to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:NominalRValue) &gt;= 0 or not(h:NominalRValue)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:NominalRValue) &gt;= 0 or not(h:NominalRValue)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected NominalRValue to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Slabs/h:Slab/h:UnderSlabInsulation/h:Layer" priority="1072" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Slabs/h:Slab/h:UnderSlabInsulation/h:Layer"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:InsulationWidth) &gt;= 0 or not(h:InsulationWidth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:InsulationWidth) &gt;= 0 or not(h:InsulationWidth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected InsulationWidth to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:NominalRValue) &gt;= 0 or not(h:NominalRValue)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:NominalRValue) &gt;= 0 or not(h:NominalRValue)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected NominalRValue to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Windows/h:Window" priority="1071" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Windows/h:Window"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Area) &gt; 0 or not(h:Area)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Area) &gt; 0 or not(h:Area)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Area to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be less than 360</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Orientation[text()=&quot;north&quot; or text()=&quot;northwest&quot; or text()=&quot;west&quot; or text()=&quot;southwest&quot; or text()=&quot;south&quot; or text()=&quot;southeast&quot; or text()=&quot;east&quot; or text()=&quot;northeast&quot;] or not(h:Orientation)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Orientation[text()=&quot;north&quot; or text()=&quot;northwest&quot; or text()=&quot;west&quot; or text()=&quot;southwest&quot; or text()=&quot;south&quot; or text()=&quot;southeast&quot; or text()=&quot;east&quot; or text()=&quot;northeast&quot;] or not(h:Orientation)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Orientation to be 'north' or 'northwest' or 'west' or 'southwest' or 'south' or 'southeast' or 'east' or 'northeast'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:GlassLayers[text()=&quot;single-pane&quot; or text()=&quot;double-pane&quot; or text()=&quot;triple-pane&quot; or text()=&quot;multi-layered&quot; or text()=&quot;glass block&quot; or text()=&quot;other&quot;] or not(h:GlassLayers)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:GlassLayers[text()=&quot;single-pane&quot; or text()=&quot;double-pane&quot; or text()=&quot;triple-pane&quot; or text()=&quot;multi-layered&quot; or text()=&quot;glass block&quot; or text()=&quot;other&quot;] or not(h:GlassLayers)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected GlassLayers to be 'single-pane' or 'double-pane' or 'triple-pane' or 'multi-layered' or 'glass block' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:GlassType[text()=&quot;clear&quot; or text()=&quot;low-e&quot; or text()=&quot;tinted&quot; or text()=&quot;reflective&quot; or text()=&quot;tinted/reflective&quot; or text()=&quot;other&quot;] or not(h:GlassType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:GlassType[text()=&quot;clear&quot; or text()=&quot;low-e&quot; or text()=&quot;tinted&quot; or text()=&quot;reflective&quot; or text()=&quot;tinted/reflective&quot; or text()=&quot;other&quot;] or not(h:GlassType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected GlassType to be 'clear' or 'low-e' or 'tinted' or 'reflective' or 'tinted/reflective' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:GasFill[text()=&quot;air&quot; or text()=&quot;argon&quot; or text()=&quot;krypton&quot; or text()=&quot;xenon&quot; or text()=&quot;nitrogen&quot; or text()=&quot;other&quot;] or not(h:GasFill)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:GasFill[text()=&quot;air&quot; or text()=&quot;argon&quot; or text()=&quot;krypton&quot; or text()=&quot;xenon&quot; or text()=&quot;nitrogen&quot; or text()=&quot;other&quot;] or not(h:GasFill)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected GasFill to be 'air' or 'argon' or 'krypton' or 'xenon' or 'nitrogen' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:UFactor) &gt; 0 or not(h:UFactor)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:UFactor) &gt; 0 or not(h:UFactor)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected UFactor to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SHGC) &gt; 0 or not(h:SHGC)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SHGC) &gt; 0 or not(h:SHGC)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SHGC to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SHGC) &lt; 1 or not(h:SHGC)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SHGC) &lt; 1 or not(h:SHGC)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SHGC to be less than 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionOperable) &gt;= 0 or not(h:FractionOperable)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionOperable) &gt;= 0 or not(h:FractionOperable)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionOperable to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionOperable) &lt;= 1 or not(h:FractionOperable)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionOperable) &lt;= 1 or not(h:FractionOperable)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionOperable to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:AttachedToWall[@idref]) = count(h:AttachedToWall)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:AttachedToWall[@idref]) = count(h:AttachedToWall)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for AttachedToWall</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Windows/h:Window/h:ExteriorShading" priority="1070" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Windows/h:Window/h:ExteriorShading"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SummerShadingCoefficient) &gt;= 0 or not(h:SummerShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SummerShadingCoefficient) &gt;= 0 or not(h:SummerShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SummerShadingCoefficient to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SummerShadingCoefficient) &lt;= 1 or not(h:SummerShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SummerShadingCoefficient) &lt;= 1 or not(h:SummerShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SummerShadingCoefficient to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:WinterShadingCoefficient) &gt;= 0 or not(h:WinterShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:WinterShadingCoefficient) &gt;= 0 or not(h:WinterShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected WinterShadingCoefficient to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:WinterShadingCoefficient) &lt;= 1 or not(h:WinterShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:WinterShadingCoefficient) &lt;= 1 or not(h:WinterShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected WinterShadingCoefficient to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Windows/h:Window/h:InteriorShading" priority="1069" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Windows/h:Window/h:InteriorShading"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SummerShadingCoefficient) &gt;= 0 or not(h:SummerShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SummerShadingCoefficient) &gt;= 0 or not(h:SummerShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SummerShadingCoefficient to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SummerShadingCoefficient) &lt;= 1 or not(h:SummerShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SummerShadingCoefficient) &lt;= 1 or not(h:SummerShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SummerShadingCoefficient to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:WinterShadingCoefficient) &gt;= 0 or not(h:WinterShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:WinterShadingCoefficient) &gt;= 0 or not(h:WinterShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected WinterShadingCoefficient to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:WinterShadingCoefficient) &lt;= 1 or not(h:WinterShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:WinterShadingCoefficient) &lt;= 1 or not(h:WinterShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected WinterShadingCoefficient to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Windows/h:Window/h:StormWindow" priority="1068" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Windows/h:Window/h:StormWindow"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:GlassType[text()=&quot;clear&quot; or text()=&quot;low-e&quot; or text()=&quot;tinted&quot; or text()=&quot;reflective&quot; or text()=&quot;tinted/reflective&quot; or text()=&quot;other&quot;] or not(h:GlassType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:GlassType[text()=&quot;clear&quot; or text()=&quot;low-e&quot; or text()=&quot;tinted&quot; or text()=&quot;reflective&quot; or text()=&quot;tinted/reflective&quot; or text()=&quot;other&quot;] or not(h:GlassType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected GlassType to be 'clear' or 'low-e' or 'tinted' or 'reflective' or 'tinted/reflective' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Windows/h:Window/h:Overhangs" priority="1067" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Windows/h:Window/h:Overhangs"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Depth) &gt;= 0 or not(h:Depth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Depth) &gt;= 0 or not(h:Depth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Depth to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:DistanceToTopOfWindow) &gt;= 0 or not(h:DistanceToTopOfWindow)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:DistanceToTopOfWindow) &gt;= 0 or not(h:DistanceToTopOfWindow)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected DistanceToTopOfWindow to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:DistanceToBottomOfWindow) &gt;= 0 or not(h:DistanceToBottomOfWindow)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:DistanceToBottomOfWindow) &gt;= 0 or not(h:DistanceToBottomOfWindow)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected DistanceToBottomOfWindow to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Skylights/h:Skylight" priority="1066" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Skylights/h:Skylight"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Area) &gt; 0 or not(h:Area)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Area) &gt; 0 or not(h:Area)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Area to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be less than 360</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:GlassLayers[text()=&quot;single-pane&quot; or text()=&quot;double-pane&quot; or text()=&quot;triple-pane&quot; or text()=&quot;multi-layered&quot; or text()=&quot;glass block&quot; or text()=&quot;other&quot;] or not(h:GlassLayers)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:GlassLayers[text()=&quot;single-pane&quot; or text()=&quot;double-pane&quot; or text()=&quot;triple-pane&quot; or text()=&quot;multi-layered&quot; or text()=&quot;glass block&quot; or text()=&quot;other&quot;] or not(h:GlassLayers)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected GlassLayers to be 'single-pane' or 'double-pane' or 'triple-pane' or 'multi-layered' or 'glass block' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:GlassType[text()=&quot;clear&quot; or text()=&quot;low-e&quot; or text()=&quot;tinted&quot; or text()=&quot;reflective&quot; or text()=&quot;tinted/reflective&quot; or text()=&quot;other&quot;] or not(h:GlassType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:GlassType[text()=&quot;clear&quot; or text()=&quot;low-e&quot; or text()=&quot;tinted&quot; or text()=&quot;reflective&quot; or text()=&quot;tinted/reflective&quot; or text()=&quot;other&quot;] or not(h:GlassType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected GlassType to be 'clear' or 'low-e' or 'tinted' or 'reflective' or 'tinted/reflective' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:GasFill[text()=&quot;air&quot; or text()=&quot;argon&quot; or text()=&quot;krypton&quot; or text()=&quot;xenon&quot; or text()=&quot;nitrogen&quot; or text()=&quot;other&quot;] or not(h:GasFill)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:GasFill[text()=&quot;air&quot; or text()=&quot;argon&quot; or text()=&quot;krypton&quot; or text()=&quot;xenon&quot; or text()=&quot;nitrogen&quot; or text()=&quot;other&quot;] or not(h:GasFill)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected GasFill to be 'air' or 'argon' or 'krypton' or 'xenon' or 'nitrogen' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:UFactor) &gt; 0 or not(h:UFactor)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:UFactor) &gt; 0 or not(h:UFactor)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected UFactor to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SHGC) &gt; 0 or not(h:SHGC)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SHGC) &gt; 0 or not(h:SHGC)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SHGC to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SHGC) &lt; 1 or not(h:SHGC)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SHGC) &lt; 1 or not(h:SHGC)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SHGC to be less than 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:AttachedToRoof[@idref]) = count(h:AttachedToRoof)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:AttachedToRoof[@idref]) = count(h:AttachedToRoof)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for AttachedToRoof</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Skylights/h:Skylight/h:ExteriorShading" priority="1065" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Skylights/h:Skylight/h:ExteriorShading"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SummerShadingCoefficient) &gt;= 0 or not(h:SummerShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SummerShadingCoefficient) &gt;= 0 or not(h:SummerShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SummerShadingCoefficient to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SummerShadingCoefficient) &lt;= 1 or not(h:SummerShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SummerShadingCoefficient) &lt;= 1 or not(h:SummerShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SummerShadingCoefficient to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:WinterShadingCoefficient) &gt;= 0 or not(h:WinterShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:WinterShadingCoefficient) &gt;= 0 or not(h:WinterShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected WinterShadingCoefficient to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:WinterShadingCoefficient) &lt;= 1 or not(h:WinterShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:WinterShadingCoefficient) &lt;= 1 or not(h:WinterShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected WinterShadingCoefficient to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Skylights/h:Skylight/h:InteriorShading" priority="1064" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Skylights/h:Skylight/h:InteriorShading"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SummerShadingCoefficient) &gt;= 0 or not(h:SummerShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SummerShadingCoefficient) &gt;= 0 or not(h:SummerShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SummerShadingCoefficient to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SummerShadingCoefficient) &lt;= 1 or not(h:SummerShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SummerShadingCoefficient) &lt;= 1 or not(h:SummerShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SummerShadingCoefficient to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:WinterShadingCoefficient) &gt;= 0 or not(h:WinterShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:WinterShadingCoefficient) &gt;= 0 or not(h:WinterShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected WinterShadingCoefficient to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:WinterShadingCoefficient) &lt;= 1 or not(h:WinterShadingCoefficient)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:WinterShadingCoefficient) &lt;= 1 or not(h:WinterShadingCoefficient)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected WinterShadingCoefficient to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Skylights/h:Skylight/h:StormWindow" priority="1063" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Skylights/h:Skylight/h:StormWindow"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:GlassType[text()=&quot;clear&quot; or text()=&quot;low-e&quot; or text()=&quot;tinted&quot; or text()=&quot;reflective&quot; or text()=&quot;tinted/reflective&quot; or text()=&quot;other&quot;] or not(h:GlassType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:GlassType[text()=&quot;clear&quot; or text()=&quot;low-e&quot; or text()=&quot;tinted&quot; or text()=&quot;reflective&quot; or text()=&quot;tinted/reflective&quot; or text()=&quot;other&quot;] or not(h:GlassType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected GlassType to be 'clear' or 'low-e' or 'tinted' or 'reflective' or 'tinted/reflective' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Doors/h:Door" priority="1062" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Doors/h:Door"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Area) &gt; 0 or not(h:Area)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Area) &gt; 0 or not(h:Area)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Area to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &gt;= 0 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Azimuth) &lt; 360 or not(h:Azimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Azimuth to be less than 360</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Orientation[text()=&quot;north&quot; or text()=&quot;northwest&quot; or text()=&quot;west&quot; or text()=&quot;southwest&quot; or text()=&quot;south&quot; or text()=&quot;southeast&quot; or text()=&quot;east&quot; or text()=&quot;northeast&quot;] or not(h:Orientation)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Orientation[text()=&quot;north&quot; or text()=&quot;northwest&quot; or text()=&quot;west&quot; or text()=&quot;southwest&quot; or text()=&quot;south&quot; or text()=&quot;southeast&quot; or text()=&quot;east&quot; or text()=&quot;northeast&quot;] or not(h:Orientation)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Orientation to be 'north' or 'northwest' or 'west' or 'southwest' or 'south' or 'southeast' or 'east' or 'northeast'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:RValue) &gt;= 0 or not(h:RValue)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:RValue) &gt;= 0 or not(h:RValue)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected RValue to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:AttachedToWall[@idref]) = count(h:AttachedToWall)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:AttachedToWall[@idref]) = count(h:AttachedToWall)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for AttachedToWall</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatingSystem" priority="1061" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatingSystem"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:HeatingSystemFuel[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:HeatingSystemFuel)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:HeatingSystemFuel[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:HeatingSystemFuel)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected HeatingSystemFuel to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionHeatLoadServed) &gt;= 0 or not(h:FractionHeatLoadServed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionHeatLoadServed) &gt;= 0 or not(h:FractionHeatLoadServed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionHeatLoadServed to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionHeatLoadServed) &lt;= 1 or not(h:FractionHeatLoadServed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionHeatLoadServed) &lt;= 1 or not(h:FractionHeatLoadServed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionHeatLoadServed to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:DistributionSystem[@idref]) = count(h:DistributionSystem)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:DistributionSystem[@idref]) = count(h:DistributionSystem)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for DistributionSystem</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatingSystem/h:AnnualHeatingEfficiency" priority="1060" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatingSystem/h:AnnualHeatingEfficiency"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;HSPF&quot; or text()=&quot;COP&quot; or text()=&quot;AFUE&quot; or text()=&quot;Percent&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;HSPF&quot; or text()=&quot;COP&quot; or text()=&quot;AFUE&quot; or text()=&quot;Percent&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'HSPF' or 'COP' or 'AFUE' or 'Percent'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Value) &gt;= 0 or not(h:Value)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Value) &gt;= 0 or not(h:Value)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Value to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:CoolingSystem" priority="1059" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:CoolingSystem"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:CoolingSystemType[text()=&quot;central air conditioner&quot; or text()=&quot;mini-split&quot; or text()=&quot;room air conditioner&quot; or text()=&quot;evaporative cooler&quot; or text()=&quot;chiller&quot; or text()=&quot;cooling tower&quot; or text()=&quot;packaged terminal air conditioner&quot; or text()=&quot;other&quot;] or not(h:CoolingSystemType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:CoolingSystemType[text()=&quot;central air conditioner&quot; or text()=&quot;mini-split&quot; or text()=&quot;room air conditioner&quot; or text()=&quot;evaporative cooler&quot; or text()=&quot;chiller&quot; or text()=&quot;cooling tower&quot; or text()=&quot;packaged terminal air conditioner&quot; or text()=&quot;other&quot;] or not(h:CoolingSystemType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CoolingSystemType to be 'central air conditioner' or 'mini-split' or 'room air conditioner' or 'evaporative cooler' or 'chiller' or 'cooling tower' or 'packaged terminal air conditioner' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:CoolingSystemFuel[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:CoolingSystemFuel)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:CoolingSystemFuel[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:CoolingSystemFuel)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CoolingSystemFuel to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:CompressorType[text()=&quot;single stage&quot; or text()=&quot;two stage&quot; or text()=&quot;variable speed&quot;] or not(h:CompressorType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:CompressorType[text()=&quot;single stage&quot; or text()=&quot;two stage&quot; or text()=&quot;variable speed&quot;] or not(h:CompressorType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CompressorType to be 'single stage' or 'two stage' or 'variable speed'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionCoolLoadServed) &gt;= 0 or not(h:FractionCoolLoadServed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionCoolLoadServed) &gt;= 0 or not(h:FractionCoolLoadServed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionCoolLoadServed to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionCoolLoadServed) &lt;= 1 or not(h:FractionCoolLoadServed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionCoolLoadServed) &lt;= 1 or not(h:FractionCoolLoadServed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionCoolLoadServed to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SensibleHeatFraction) &gt;= 0 or not(h:SensibleHeatFraction)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SensibleHeatFraction) &gt;= 0 or not(h:SensibleHeatFraction)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SensibleHeatFraction to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SensibleHeatFraction) &lt;= 1 or not(h:SensibleHeatFraction)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SensibleHeatFraction) &lt;= 1 or not(h:SensibleHeatFraction)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SensibleHeatFraction to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:DistributionSystem[@idref]) = count(h:DistributionSystem)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:DistributionSystem[@idref]) = count(h:DistributionSystem)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for DistributionSystem</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:CoolingSystem/h:AnnualCoolingEfficiency" priority="1058" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:CoolingSystem/h:AnnualCoolingEfficiency"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;SEER&quot; or text()=&quot;CEER&quot; or text()=&quot;EER&quot; or text()=&quot;COP&quot; or text()=&quot;kW/ton&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;SEER&quot; or text()=&quot;CEER&quot; or text()=&quot;EER&quot; or text()=&quot;COP&quot; or text()=&quot;kW/ton&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'SEER' or 'CEER' or 'EER' or 'COP' or 'kW/ton'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Value) &gt;= 0 or not(h:Value)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Value) &gt;= 0 or not(h:Value)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Value to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatPump" priority="1057" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatPump"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:HeatPumpType[text()=&quot;water-to-air&quot; or text()=&quot;water-to-water&quot; or text()=&quot;air-to-air&quot; or text()=&quot;air-to-water&quot; or text()=&quot;mini-split&quot; or text()=&quot;ground-to-air&quot; or text()=&quot;ground-to-water&quot; or text()=&quot;water-loop-to-air&quot; or text()=&quot;variable refrigerant flow&quot; or text()=&quot;packaged terminal heat pump&quot; or text()=&quot;room heat pump&quot;] or not(h:HeatPumpType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:HeatPumpType[text()=&quot;water-to-air&quot; or text()=&quot;water-to-water&quot; or text()=&quot;air-to-air&quot; or text()=&quot;air-to-water&quot; or text()=&quot;mini-split&quot; or text()=&quot;ground-to-air&quot; or text()=&quot;ground-to-water&quot; or text()=&quot;water-loop-to-air&quot; or text()=&quot;variable refrigerant flow&quot; or text()=&quot;packaged terminal heat pump&quot; or text()=&quot;room heat pump&quot;] or not(h:HeatPumpType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected HeatPumpType to be 'water-to-air' or 'water-to-water' or 'air-to-air' or 'air-to-water' or 'mini-split' or 'ground-to-air' or 'ground-to-water' or 'water-loop-to-air' or 'variable refrigerant flow' or 'packaged terminal heat pump' or 'room heat pump'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:HeatPumpFuel[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:HeatPumpFuel)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:HeatPumpFuel[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:HeatPumpFuel)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected HeatPumpFuel to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:CompressorType[text()=&quot;single stage&quot; or text()=&quot;two stage&quot; or text()=&quot;variable speed&quot;] or not(h:CompressorType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:CompressorType[text()=&quot;single stage&quot; or text()=&quot;two stage&quot; or text()=&quot;variable speed&quot;] or not(h:CompressorType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CompressorType to be 'single stage' or 'two stage' or 'variable speed'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:CoolingSensibleHeatFraction) &gt;= 0 or not(h:CoolingSensibleHeatFraction)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:CoolingSensibleHeatFraction) &gt;= 0 or not(h:CoolingSensibleHeatFraction)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CoolingSensibleHeatFraction to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:CoolingSensibleHeatFraction) &lt;= 1 or not(h:CoolingSensibleHeatFraction)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:CoolingSensibleHeatFraction) &lt;= 1 or not(h:CoolingSensibleHeatFraction)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CoolingSensibleHeatFraction to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:BackupType[text()=&quot;integrated&quot; or text()=&quot;separate&quot;] or not(h:BackupType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:BackupType[text()=&quot;integrated&quot; or text()=&quot;separate&quot;] or not(h:BackupType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected BackupType to be 'integrated' or 'separate'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:BackupSystemFuel[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:BackupSystemFuel)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:BackupSystemFuel[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:BackupSystemFuel)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected BackupSystemFuel to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionHeatLoadServed) &gt;= 0 or not(h:FractionHeatLoadServed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionHeatLoadServed) &gt;= 0 or not(h:FractionHeatLoadServed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionHeatLoadServed to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionHeatLoadServed) &lt;= 1 or not(h:FractionHeatLoadServed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionHeatLoadServed) &lt;= 1 or not(h:FractionHeatLoadServed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionHeatLoadServed to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionCoolLoadServed) &gt;= 0 or not(h:FractionCoolLoadServed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionCoolLoadServed) &gt;= 0 or not(h:FractionCoolLoadServed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionCoolLoadServed to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionCoolLoadServed) &lt;= 1 or not(h:FractionCoolLoadServed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionCoolLoadServed) &lt;= 1 or not(h:FractionCoolLoadServed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionCoolLoadServed to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:DistributionSystem[@idref]) = count(h:DistributionSystem)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:DistributionSystem[@idref]) = count(h:DistributionSystem)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for DistributionSystem</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatPump/h:BackupAnnualHeatingEfficiency" priority="1056" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatPump/h:BackupAnnualHeatingEfficiency"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;HSPF&quot; or text()=&quot;COP&quot; or text()=&quot;AFUE&quot; or text()=&quot;Percent&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;HSPF&quot; or text()=&quot;COP&quot; or text()=&quot;AFUE&quot; or text()=&quot;Percent&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'HSPF' or 'COP' or 'AFUE' or 'Percent'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Value) &gt;= 0 or not(h:Value)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Value) &gt;= 0 or not(h:Value)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Value to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatPump/h:AnnualCoolingEfficiency" priority="1055" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatPump/h:AnnualCoolingEfficiency"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;SEER&quot; or text()=&quot;CEER&quot; or text()=&quot;EER&quot; or text()=&quot;COP&quot; or text()=&quot;kW/ton&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;SEER&quot; or text()=&quot;CEER&quot; or text()=&quot;EER&quot; or text()=&quot;COP&quot; or text()=&quot;kW/ton&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'SEER' or 'CEER' or 'EER' or 'COP' or 'kW/ton'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Value) &gt;= 0 or not(h:Value)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Value) &gt;= 0 or not(h:Value)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Value to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatPump/h:AnnualHeatingEfficiency" priority="1054" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatPump/h:AnnualHeatingEfficiency"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;HSPF&quot; or text()=&quot;COP&quot; or text()=&quot;AFUE&quot; or text()=&quot;Percent&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;HSPF&quot; or text()=&quot;COP&quot; or text()=&quot;AFUE&quot; or text()=&quot;Percent&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'HSPF' or 'COP' or 'AFUE' or 'Percent'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Value) &gt;= 0 or not(h:Value)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Value) &gt;= 0 or not(h:Value)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Value to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACControl" priority="1053" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACControl"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:ControlType[text()=&quot;programmable thermostat&quot; or text()=&quot;manual thermostat&quot; or text()=&quot;digital thermostat&quot; or text()=&quot;timer&quot; or text()=&quot;EMCS&quot; or text()=&quot;other&quot;] or not(h:ControlType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:ControlType[text()=&quot;programmable thermostat&quot; or text()=&quot;manual thermostat&quot; or text()=&quot;digital thermostat&quot; or text()=&quot;timer&quot; or text()=&quot;EMCS&quot; or text()=&quot;other&quot;] or not(h:ControlType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ControlType to be 'programmable thermostat' or 'manual thermostat' or 'digital thermostat' or 'timer' or 'EMCS' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACControl/h:HeatingSeason" priority="1052" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACControl/h:HeatingSeason"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:BeginMonth) &gt;= 1 or not(h:BeginMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:BeginMonth) &gt;= 1 or not(h:BeginMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected BeginMonth to be greater than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:BeginMonth) &lt;= 12 or not(h:BeginMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:BeginMonth) &lt;= 12 or not(h:BeginMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected BeginMonth to be less than or equal to 12</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:BeginDayOfMonth) &gt;= 1 or not(h:BeginDayOfMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:BeginDayOfMonth) &gt;= 1 or not(h:BeginDayOfMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected BeginDayOfMonth to be greater than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:BeginDayOfMonth) &lt;= 31 or not(h:BeginDayOfMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:BeginDayOfMonth) &lt;= 31 or not(h:BeginDayOfMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected BeginDayOfMonth to be less than or equal to 31</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:EndMonth) &gt;= 1 or not(h:EndMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:EndMonth) &gt;= 1 or not(h:EndMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected EndMonth to be greater than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:EndMonth) &lt;= 12 or not(h:EndMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:EndMonth) &lt;= 12 or not(h:EndMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected EndMonth to be less than or equal to 12</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:EndDayOfMonth) &gt;= 1 or not(h:EndDayOfMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:EndDayOfMonth) &gt;= 1 or not(h:EndDayOfMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected EndDayOfMonth to be greater than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:EndDayOfMonth) &lt;= 31 or not(h:EndDayOfMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:EndDayOfMonth) &lt;= 31 or not(h:EndDayOfMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected EndDayOfMonth to be less than or equal to 31</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACControl/h:CoolingSeason" priority="1051" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACControl/h:CoolingSeason"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:BeginMonth) &gt;= 1 or not(h:BeginMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:BeginMonth) &gt;= 1 or not(h:BeginMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected BeginMonth to be greater than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:BeginMonth) &lt;= 12 or not(h:BeginMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:BeginMonth) &lt;= 12 or not(h:BeginMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected BeginMonth to be less than or equal to 12</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:BeginDayOfMonth) &gt;= 1 or not(h:BeginDayOfMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:BeginDayOfMonth) &gt;= 1 or not(h:BeginDayOfMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected BeginDayOfMonth to be greater than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:BeginDayOfMonth) &lt;= 31 or not(h:BeginDayOfMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:BeginDayOfMonth) &lt;= 31 or not(h:BeginDayOfMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected BeginDayOfMonth to be less than or equal to 31</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:EndMonth) &gt;= 1 or not(h:EndMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:EndMonth) &gt;= 1 or not(h:EndMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected EndMonth to be greater than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:EndMonth) &lt;= 12 or not(h:EndMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:EndMonth) &lt;= 12 or not(h:EndMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected EndMonth to be less than or equal to 12</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:EndDayOfMonth) &gt;= 1 or not(h:EndDayOfMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:EndDayOfMonth) &gt;= 1 or not(h:EndDayOfMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected EndDayOfMonth to be greater than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:EndDayOfMonth) &lt;= 31 or not(h:EndDayOfMonth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:EndDayOfMonth) &lt;= 31 or not(h:EndDayOfMonth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected EndDayOfMonth to be less than or equal to 31</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:AirDistribution" priority="1050" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:AirDistribution"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:AirDistributionType[text()=&quot;regular velocity&quot; or text()=&quot;high velocity&quot; or text()=&quot;gravity&quot; or text()=&quot;fan coil&quot;] or not(h:AirDistributionType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:AirDistributionType[text()=&quot;regular velocity&quot; or text()=&quot;high velocity&quot; or text()=&quot;gravity&quot; or text()=&quot;fan coil&quot;] or not(h:AirDistributionType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AirDistributionType to be 'regular velocity' or 'high velocity' or 'gravity' or 'fan coil'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:NumberofReturnRegisters) &gt;= 0 or not(h:NumberofReturnRegisters)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:NumberofReturnRegisters) &gt;= 0 or not(h:NumberofReturnRegisters)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected NumberofReturnRegisters to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:AirDistribution/h:DuctLeakageMeasurement" priority="1049" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:AirDistribution/h:DuctLeakageMeasurement"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:DuctType[text()=&quot;supply&quot; or text()=&quot;return&quot;] or not(h:DuctType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:DuctType[text()=&quot;supply&quot; or text()=&quot;return&quot;] or not(h:DuctType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected DuctType to be 'supply' or 'return'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:AirDistribution/h:DuctLeakageMeasurement/h:DuctLeakage" priority="1048" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:AirDistribution/h:DuctLeakageMeasurement/h:DuctLeakage"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;CFM50&quot; or text()=&quot;CFM25&quot; or text()=&quot;CFM per Std 152&quot; or text()=&quot;Percent&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;CFM50&quot; or text()=&quot;CFM25&quot; or text()=&quot;CFM per Std 152&quot; or text()=&quot;Percent&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'CFM50' or 'CFM25' or 'CFM per Std 152' or 'Percent'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:TotalOrToOutside[text()=&quot;to outside&quot; or text()=&quot;total&quot;] or not(h:TotalOrToOutside)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:TotalOrToOutside[text()=&quot;to outside&quot; or text()=&quot;total&quot;] or not(h:TotalOrToOutside)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected TotalOrToOutside to be 'to outside' or 'total'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:AirDistribution/h:Ducts" priority="1047" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:AirDistribution/h:Ducts"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:DuctType[text()=&quot;supply&quot; or text()=&quot;return&quot;] or not(h:DuctType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:DuctType[text()=&quot;supply&quot; or text()=&quot;return&quot;] or not(h:DuctType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected DuctType to be 'supply' or 'return'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:DuctInsulationRValue) &gt;= 0 or not(h:DuctInsulationRValue)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:DuctInsulationRValue) &gt;= 0 or not(h:DuctInsulationRValue)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected DuctInsulationRValue to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:DuctLocation[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;exterior wall&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;interstitial space&quot; or text()=&quot;living space&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;roof deck&quot; or text()=&quot;unconditioned space&quot; or text()=&quot;under slab&quot;] or not(h:DuctLocation)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:DuctLocation[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;exterior wall&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;interstitial space&quot; or text()=&quot;living space&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;roof deck&quot; or text()=&quot;unconditioned space&quot; or text()=&quot;under slab&quot;] or not(h:DuctLocation)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected DuctLocation to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'exterior wall' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'interstitial space' or 'living space' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'roof deck' or 'unconditioned space' or 'under slab'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionDuctArea) &gt;= 0 or not(h:FractionDuctArea)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionDuctArea) &gt;= 0 or not(h:FractionDuctArea)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionDuctArea to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionDuctArea) &lt;= 1 or not(h:FractionDuctArea)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionDuctArea) &lt;= 1 or not(h:FractionDuctArea)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionDuctArea to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:DuctSurfaceArea) &gt; 0 or not(h:DuctSurfaceArea)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:DuctSurfaceArea) &gt; 0 or not(h:DuctSurfaceArea)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected DuctSurfaceArea to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:HydronicDistribution" priority="1046" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:HydronicDistribution"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:HydronicDistributionType[text()=&quot;radiator&quot; or text()=&quot;baseboard&quot; or text()=&quot;radiant floor&quot; or text()=&quot;radiant ceiling&quot; or text()=&quot;water loop&quot; or text()=&quot;other&quot;] or not(h:HydronicDistributionType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:HydronicDistributionType[text()=&quot;radiator&quot; or text()=&quot;baseboard&quot; or text()=&quot;radiant floor&quot; or text()=&quot;radiant ceiling&quot; or text()=&quot;water loop&quot; or text()=&quot;other&quot;] or not(h:HydronicDistributionType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected HydronicDistributionType to be 'radiator' or 'baseboard' or 'radiant floor' or 'radiant ceiling' or 'water loop' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution" priority="1045" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:ConditionedFloorAreaServed) &gt; 0 or not(h:ConditionedFloorAreaServed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:ConditionedFloorAreaServed) &gt; 0 or not(h:ConditionedFloorAreaServed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ConditionedFloorAreaServed to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AnnualHeatingDistributionSystemEfficiency) &gt;= 0 or not(h:AnnualHeatingDistributionSystemEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AnnualHeatingDistributionSystemEfficiency) &gt;= 0 or not(h:AnnualHeatingDistributionSystemEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AnnualHeatingDistributionSystemEfficiency to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AnnualHeatingDistributionSystemEfficiency) &lt;= 1 or not(h:AnnualHeatingDistributionSystemEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AnnualHeatingDistributionSystemEfficiency) &lt;= 1 or not(h:AnnualHeatingDistributionSystemEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AnnualHeatingDistributionSystemEfficiency to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AnnualCoolingDistributionSystemEfficiency) &gt;= 0 or not(h:AnnualCoolingDistributionSystemEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AnnualCoolingDistributionSystemEfficiency) &gt;= 0 or not(h:AnnualCoolingDistributionSystemEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AnnualCoolingDistributionSystemEfficiency to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AnnualCoolingDistributionSystemEfficiency) &lt;= 1 or not(h:AnnualCoolingDistributionSystemEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AnnualCoolingDistributionSystemEfficiency) &lt;= 1 or not(h:AnnualCoolingDistributionSystemEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AnnualCoolingDistributionSystemEfficiency to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:MechanicalVentilation/h:VentilationFans/h:VentilationFan" priority="1044" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:MechanicalVentilation/h:VentilationFans/h:VentilationFan"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Quantity) &gt; 0 or not(h:Quantity)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Quantity) &gt; 0 or not(h:Quantity)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Quantity to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:FanType[text()=&quot;exhaust only&quot; or text()=&quot;supply only&quot; or text()=&quot;heat recovery ventilator&quot; or text()=&quot;energy recovery ventilator&quot; or text()=&quot;balanced&quot; or text()=&quot;central fan integrated supply&quot;] or not(h:FanType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:FanType[text()=&quot;exhaust only&quot; or text()=&quot;supply only&quot; or text()=&quot;heat recovery ventilator&quot; or text()=&quot;energy recovery ventilator&quot; or text()=&quot;balanced&quot; or text()=&quot;central fan integrated supply&quot;] or not(h:FanType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FanType to be 'exhaust only' or 'supply only' or 'heat recovery ventilator' or 'energy recovery ventilator' or 'balanced' or 'central fan integrated supply'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:HoursInOperation) &gt;= 0 or not(h:HoursInOperation)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:HoursInOperation) &gt;= 0 or not(h:HoursInOperation)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected HoursInOperation to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:HoursInOperation) &lt;= 24 or not(h:HoursInOperation)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:HoursInOperation) &lt;= 24 or not(h:HoursInOperation)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected HoursInOperation to be less than or equal to 24</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:FanLocation[text()=&quot;bath&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;hallway&quot; or text()=&quot;kitchen&quot; or text()=&quot;other&quot;] or not(h:FanLocation)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:FanLocation[text()=&quot;bath&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;hallway&quot; or text()=&quot;kitchen&quot; or text()=&quot;other&quot;] or not(h:FanLocation)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FanLocation to be 'bath' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'hallway' or 'kitchen' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionRecirculation) &gt;= 0 or not(h:FractionRecirculation)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionRecirculation) &gt;= 0 or not(h:FractionRecirculation)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionRecirculation to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionRecirculation) &lt;= 1 or not(h:FractionRecirculation)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionRecirculation) &lt;= 1 or not(h:FractionRecirculation)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionRecirculation to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:TotalRecoveryEfficiency) &gt;= 0 or not(h:TotalRecoveryEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:TotalRecoveryEfficiency) &gt;= 0 or not(h:TotalRecoveryEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected TotalRecoveryEfficiency to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:TotalRecoveryEfficiency) &lt;= 1 or not(h:TotalRecoveryEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:TotalRecoveryEfficiency) &lt;= 1 or not(h:TotalRecoveryEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected TotalRecoveryEfficiency to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SensibleRecoveryEfficiency) &gt;= 0 or not(h:SensibleRecoveryEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SensibleRecoveryEfficiency) &gt;= 0 or not(h:SensibleRecoveryEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SensibleRecoveryEfficiency to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SensibleRecoveryEfficiency) &lt;= 1 or not(h:SensibleRecoveryEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SensibleRecoveryEfficiency) &lt;= 1 or not(h:SensibleRecoveryEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SensibleRecoveryEfficiency to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AdjustedTotalRecoveryEfficiency) &gt;= 0 or not(h:AdjustedTotalRecoveryEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AdjustedTotalRecoveryEfficiency) &gt;= 0 or not(h:AdjustedTotalRecoveryEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AdjustedTotalRecoveryEfficiency to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AdjustedTotalRecoveryEfficiency) &lt;= 1 or not(h:AdjustedTotalRecoveryEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AdjustedTotalRecoveryEfficiency) &lt;= 1 or not(h:AdjustedTotalRecoveryEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AdjustedTotalRecoveryEfficiency to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AdjustedSensibleRecoveryEfficiency) &gt;= 0 or not(h:AdjustedSensibleRecoveryEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AdjustedSensibleRecoveryEfficiency) &gt;= 0 or not(h:AdjustedSensibleRecoveryEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AdjustedSensibleRecoveryEfficiency to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:AdjustedSensibleRecoveryEfficiency) &lt;= 1 or not(h:AdjustedSensibleRecoveryEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:AdjustedSensibleRecoveryEfficiency) &lt;= 1 or not(h:AdjustedSensibleRecoveryEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected AdjustedSensibleRecoveryEfficiency to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:AttachedToHVACDistributionSystem[@idref]) = count(h:AttachedToHVACDistributionSystem)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:AttachedToHVACDistributionSystem[@idref]) = count(h:AttachedToHVACDistributionSystem)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for AttachedToHVACDistributionSystem</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:WaterHeatingSystem" priority="1043" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:WaterHeatingSystem"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:FuelType[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:FuelType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:FuelType[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:FuelType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FuelType to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:WaterHeaterType[text()=&quot;storage water heater&quot; or text()=&quot;dedicated boiler with storage tank&quot; or text()=&quot;instantaneous water heater&quot; or text()=&quot;heat pump water heater&quot; or text()=&quot;space-heating boiler with storage tank&quot; or text()=&quot;space-heating boiler with tankless coil&quot;] or not(h:WaterHeaterType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:WaterHeaterType[text()=&quot;storage water heater&quot; or text()=&quot;dedicated boiler with storage tank&quot; or text()=&quot;instantaneous water heater&quot; or text()=&quot;heat pump water heater&quot; or text()=&quot;space-heating boiler with storage tank&quot; or text()=&quot;space-heating boiler with tankless coil&quot;] or not(h:WaterHeaterType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected WaterHeaterType to be 'storage water heater' or 'dedicated boiler with storage tank' or 'instantaneous water heater' or 'heat pump water heater' or 'space-heating boiler with storage tank' or 'space-heating boiler with tankless coil'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Location[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;living space&quot; or text()=&quot;mechanical closet&quot; or text()=&quot;other exterior&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other interior&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;roof deck&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Location[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;living space&quot; or text()=&quot;mechanical closet&quot; or text()=&quot;other exterior&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other interior&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;roof deck&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Location to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'living space' or 'mechanical closet' or 'other exterior' or 'other heated space' or 'other housing unit' or 'other interior' or 'other multifamily buffer space' or 'other non-freezing space' or 'roof deck' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:PerformanceAdjustment) &gt;= 0 or not(h:PerformanceAdjustment)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:PerformanceAdjustment) &gt;= 0 or not(h:PerformanceAdjustment)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected PerformanceAdjustment to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:PerformanceAdjustment) &lt;= 1 or not(h:PerformanceAdjustment)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:PerformanceAdjustment) &lt;= 1 or not(h:PerformanceAdjustment)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected PerformanceAdjustment to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:TankVolume) &gt; 0 or not(h:TankVolume)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:TankVolume) &gt; 0 or not(h:TankVolume)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected TankVolume to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionDHWLoadServed) &gt;= 0 or not(h:FractionDHWLoadServed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionDHWLoadServed) &gt;= 0 or not(h:FractionDHWLoadServed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionDHWLoadServed to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionDHWLoadServed) &lt;= 1 or not(h:FractionDHWLoadServed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionDHWLoadServed) &lt;= 1 or not(h:FractionDHWLoadServed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionDHWLoadServed to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:EnergyFactor) &lt;= 5 or not(h:EnergyFactor)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:EnergyFactor) &lt;= 5 or not(h:EnergyFactor)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected EnergyFactor to be less than or equal to 5</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:EnergyFactor) &gt; 0 or not(h:EnergyFactor)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:EnergyFactor) &gt; 0 or not(h:EnergyFactor)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected EnergyFactor to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:UniformEnergyFactor) &lt;= 5 or not(h:UniformEnergyFactor)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:UniformEnergyFactor) &lt;= 5 or not(h:UniformEnergyFactor)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected UniformEnergyFactor to be less than or equal to 5</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:UniformEnergyFactor) &gt; 0 or not(h:UniformEnergyFactor)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:UniformEnergyFactor) &gt; 0 or not(h:UniformEnergyFactor)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected UniformEnergyFactor to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FirstHourRating) &gt; 0 or not(h:FirstHourRating)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FirstHourRating) &gt; 0 or not(h:FirstHourRating)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FirstHourRating to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:UsageBin[text()=&quot;very small&quot; or text()=&quot;low&quot; or text()=&quot;medium&quot; or text()=&quot;high&quot;] or not(h:UsageBin)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:UsageBin[text()=&quot;very small&quot; or text()=&quot;low&quot; or text()=&quot;medium&quot; or text()=&quot;high&quot;] or not(h:UsageBin)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected UsageBin to be 'very small' or 'low' or 'medium' or 'high'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:RecoveryEfficiency) &lt;= 5 or not(h:RecoveryEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:RecoveryEfficiency) &lt;= 5 or not(h:RecoveryEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected RecoveryEfficiency to be less than or equal to 5</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:RecoveryEfficiency) &gt; 0 or not(h:RecoveryEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:RecoveryEfficiency) &gt; 0 or not(h:RecoveryEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected RecoveryEfficiency to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:RelatedHVACSystem[@idref]) = count(h:RelatedHVACSystem)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:RelatedHVACSystem[@idref]) = count(h:RelatedHVACSystem)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for RelatedHVACSystem</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:WaterHeatingSystem/h:WaterHeaterInsulation/h:Jacket" priority="1042" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:WaterHeatingSystem/h:WaterHeaterInsulation/h:Jacket"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:JacketRValue) &gt;= 0 or not(h:JacketRValue)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:JacketRValue) &gt;= 0 or not(h:JacketRValue)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected JacketRValue to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution/h:SystemType/h:Standard" priority="1041" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution/h:SystemType/h:Standard"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:PipingLength) &gt;= 0 or not(h:PipingLength)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:PipingLength) &gt;= 0 or not(h:PipingLength)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected PipingLength to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution/h:SystemType/h:Recirculation" priority="1040" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution/h:SystemType/h:Recirculation"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:ControlType[text()=&quot;no control&quot; or text()=&quot;timer&quot; or text()=&quot;temperature&quot; or text()=&quot;presence sensor demand control&quot; or text()=&quot;manual demand control&quot;] or not(h:ControlType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:ControlType[text()=&quot;no control&quot; or text()=&quot;timer&quot; or text()=&quot;temperature&quot; or text()=&quot;presence sensor demand control&quot; or text()=&quot;manual demand control&quot;] or not(h:ControlType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ControlType to be 'no control' or 'timer' or 'temperature' or 'presence sensor demand control' or 'manual demand control'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:RecirculationPipingLoopLength) &gt;= 0 or not(h:RecirculationPipingLoopLength)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:RecirculationPipingLoopLength) &gt;= 0 or not(h:RecirculationPipingLoopLength)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected RecirculationPipingLoopLength to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:BranchPipingLoopLength) &gt;= 0 or not(h:BranchPipingLoopLength)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:BranchPipingLoopLength) &gt;= 0 or not(h:BranchPipingLoopLength)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected BranchPipingLoopLength to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:PumpPower) &gt;= 0 or not(h:PumpPower)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:PumpPower) &gt;= 0 or not(h:PumpPower)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected PumpPower to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution/h:PipeInsulation" priority="1039" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution/h:PipeInsulation"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:PipeRValue) &gt;= 0 or not(h:PipeRValue)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:PipeRValue) &gt;= 0 or not(h:PipeRValue)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected PipeRValue to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution/h:DrainWaterHeatRecovery" priority="1038" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution/h:DrainWaterHeatRecovery"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:FacilitiesConnected[text()=&quot;one&quot; or text()=&quot;all&quot;] or not(h:FacilitiesConnected)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:FacilitiesConnected[text()=&quot;one&quot; or text()=&quot;all&quot;] or not(h:FacilitiesConnected)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FacilitiesConnected to be 'one' or 'all'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Efficiency) &gt;= 0 or not(h:Efficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Efficiency) &gt;= 0 or not(h:Efficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Efficiency to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Efficiency) &lt;= 1 or not(h:Efficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Efficiency) &lt;= 1 or not(h:Efficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Efficiency to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:WaterFixture" priority="1037" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:WaterFixture"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:WaterFixtureType[text()=&quot;faucet&quot; or text()=&quot;shower head&quot; or text()=&quot;other&quot;] or not(h:WaterFixtureType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:WaterFixtureType[text()=&quot;faucet&quot; or text()=&quot;shower head&quot; or text()=&quot;other&quot;] or not(h:WaterFixtureType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected WaterFixtureType to be 'faucet' or 'shower head' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:SolarThermal/h:SolarThermalSystem" priority="1036" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:SolarThermal/h:SolarThermalSystem"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:SystemType[text()=&quot;hot water&quot; or text()=&quot;hot water and space heating&quot; or text()=&quot;space heating&quot; or text()=&quot;hybrid system&quot;] or not(h:SystemType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:SystemType[text()=&quot;hot water&quot; or text()=&quot;hot water and space heating&quot; or text()=&quot;space heating&quot; or text()=&quot;hybrid system&quot;] or not(h:SystemType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemType to be 'hot water' or 'hot water and space heating' or 'space heating' or 'hybrid system'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:CollectorArea) &gt; 0 or not(h:CollectorArea)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:CollectorArea) &gt; 0 or not(h:CollectorArea)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CollectorArea to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:CollectorLoopType[text()=&quot;air direct&quot; or text()=&quot;air indirect&quot; or text()=&quot;liquid direct&quot; or text()=&quot;liquid indirect&quot; or text()=&quot;passive thermosyphon&quot;] or not(h:CollectorLoopType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:CollectorLoopType[text()=&quot;air direct&quot; or text()=&quot;air indirect&quot; or text()=&quot;liquid direct&quot; or text()=&quot;liquid indirect&quot; or text()=&quot;passive thermosyphon&quot;] or not(h:CollectorLoopType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CollectorLoopType to be 'air direct' or 'air indirect' or 'liquid direct' or 'liquid indirect' or 'passive thermosyphon'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:CollectorType[text()=&quot;single glazing black&quot; or text()=&quot;single glazing selective&quot; or text()=&quot;double glazing black&quot; or text()=&quot;double glazing selective&quot; or text()=&quot;evacuated tube&quot; or text()=&quot;integrated collector storage&quot;] or not(h:CollectorType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:CollectorType[text()=&quot;single glazing black&quot; or text()=&quot;single glazing selective&quot; or text()=&quot;double glazing black&quot; or text()=&quot;double glazing selective&quot; or text()=&quot;evacuated tube&quot; or text()=&quot;integrated collector storage&quot;] or not(h:CollectorType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CollectorType to be 'single glazing black' or 'single glazing selective' or 'double glazing black' or 'double glazing selective' or 'evacuated tube' or 'integrated collector storage'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:CollectorAzimuth) &gt;= 0 or not(h:CollectorAzimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:CollectorAzimuth) &gt;= 0 or not(h:CollectorAzimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CollectorAzimuth to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:CollectorAzimuth) &lt; 360 or not(h:CollectorAzimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:CollectorAzimuth) &lt; 360 or not(h:CollectorAzimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CollectorAzimuth to be less than 360</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:CollectorTilt) &gt;= 0 or not(h:CollectorTilt)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:CollectorTilt) &gt;= 0 or not(h:CollectorTilt)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CollectorTilt to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:CollectorTilt) &lt;= 90 or not(h:CollectorTilt)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:CollectorTilt) &lt;= 90 or not(h:CollectorTilt)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CollectorTilt to be less than or equal to 90</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:CollectorRatedOpticalEfficiency) &gt; 0 or not(h:CollectorRatedOpticalEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:CollectorRatedOpticalEfficiency) &gt; 0 or not(h:CollectorRatedOpticalEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CollectorRatedOpticalEfficiency to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:CollectorRatedOpticalEfficiency) &lt; 1 or not(h:CollectorRatedOpticalEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:CollectorRatedOpticalEfficiency) &lt; 1 or not(h:CollectorRatedOpticalEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CollectorRatedOpticalEfficiency to be less than 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:CollectorRatedThermalLosses) &gt; 0 or not(h:CollectorRatedThermalLosses)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:CollectorRatedThermalLosses) &gt; 0 or not(h:CollectorRatedThermalLosses)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected CollectorRatedThermalLosses to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:StorageVolume) &gt; 0 or not(h:StorageVolume)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:StorageVolume) &gt; 0 or not(h:StorageVolume)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected StorageVolume to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SolarFraction) &lt;= 1 or not(h:SolarFraction)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SolarFraction) &lt;= 1 or not(h:SolarFraction)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SolarFraction to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SolarFraction) &gt; 0 or not(h:SolarFraction)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SolarFraction) &gt; 0 or not(h:SolarFraction)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SolarFraction to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:ConnectedTo[@idref]) = count(h:ConnectedTo)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:ConnectedTo[@idref]) = count(h:ConnectedTo)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for ConnectedTo</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:Photovoltaics/h:PVSystem" priority="1035" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:Photovoltaics/h:PVSystem"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Location[text()=&quot;roof&quot; or text()=&quot;ground&quot; or text()=&quot;other&quot;] or not(h:Location)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Location[text()=&quot;roof&quot; or text()=&quot;ground&quot; or text()=&quot;other&quot;] or not(h:Location)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Location to be 'roof' or 'ground' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:ModuleType[text()=&quot;standard&quot; or text()=&quot;premium&quot; or text()=&quot;thin film&quot;] or not(h:ModuleType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:ModuleType[text()=&quot;standard&quot; or text()=&quot;premium&quot; or text()=&quot;thin film&quot;] or not(h:ModuleType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ModuleType to be 'standard' or 'premium' or 'thin film'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Tracking[text()=&quot;fixed&quot; or text()=&quot;1-axis&quot; or text()=&quot;1-axis backtracked&quot; or text()=&quot;2-axis&quot;] or not(h:Tracking)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Tracking[text()=&quot;fixed&quot; or text()=&quot;1-axis&quot; or text()=&quot;1-axis backtracked&quot; or text()=&quot;2-axis&quot;] or not(h:Tracking)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Tracking to be 'fixed' or '1-axis' or '1-axis backtracked' or '2-axis'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:ArrayAzimuth) &gt;= 0 or not(h:ArrayAzimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:ArrayAzimuth) &gt;= 0 or not(h:ArrayAzimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ArrayAzimuth to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:ArrayAzimuth) &lt; 360 or not(h:ArrayAzimuth)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:ArrayAzimuth) &lt; 360 or not(h:ArrayAzimuth)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ArrayAzimuth to be less than 360</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:ArrayTilt) &gt;= 0 or not(h:ArrayTilt)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:ArrayTilt) &gt;= 0 or not(h:ArrayTilt)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ArrayTilt to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:ArrayTilt) &lt;= 90 or not(h:ArrayTilt)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:ArrayTilt) &lt;= 90 or not(h:ArrayTilt)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected ArrayTilt to be less than or equal to 90</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:MaxPowerOutput) &gt;= 0 or not(h:MaxPowerOutput)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:MaxPowerOutput) &gt;= 0 or not(h:MaxPowerOutput)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected MaxPowerOutput to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:InverterEfficiency) &gt;= 0 or not(h:InverterEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:InverterEfficiency) &gt;= 0 or not(h:InverterEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected InverterEfficiency to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:InverterEfficiency) &lt;= 1 or not(h:InverterEfficiency)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:InverterEfficiency) &lt;= 1 or not(h:InverterEfficiency)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected InverterEfficiency to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SystemLossesFraction) &gt;= 0 or not(h:SystemLossesFraction)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SystemLossesFraction) &gt;= 0 or not(h:SystemLossesFraction)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemLossesFraction to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:SystemLossesFraction) &lt;= 1 or not(h:SystemLossesFraction)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:SystemLossesFraction) &lt;= 1 or not(h:SystemLossesFraction)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemLossesFraction to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:Batteries/h:Battery" priority="1034" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:Batteries/h:Battery"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Location[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;exterior wall&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;living space&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;roof deck&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Location[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;exterior wall&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;living space&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;roof deck&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Location to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'exterior wall' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'living space' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'roof deck' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:BatteryType[text()=&quot;Li-ion&quot; or text()=&quot;lead acid&quot; or text()=&quot;Ni-Cd&quot; or text()=&quot;salt water&quot; or text()=&quot;other&quot;] or not(h:BatteryType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:BatteryType[text()=&quot;Li-ion&quot; or text()=&quot;lead acid&quot; or text()=&quot;Ni-Cd&quot; or text()=&quot;salt water&quot; or text()=&quot;other&quot;] or not(h:BatteryType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected BatteryType to be 'Li-ion' or 'lead acid' or 'Ni-Cd' or 'salt water' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:RatedPowerOutput) &gt;= 0 or not(h:RatedPowerOutput)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:RatedPowerOutput) &gt;= 0 or not(h:RatedPowerOutput)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected RatedPowerOutput to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:Batteries/h:Battery/h:NominalCapacity" priority="1033" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:Batteries/h:Battery/h:NominalCapacity"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;kWh&quot; or text()=&quot;Ah&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;kWh&quot; or text()=&quot;Ah&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'kWh' or 'Ah'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Value) &gt;= 0 or not(h:Value)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Value) &gt;= 0 or not(h:Value)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Value to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:Batteries/h:Battery/h:UsableCapacity" priority="1032" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:Batteries/h:Battery/h:UsableCapacity"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;kWh&quot; or text()=&quot;Ah&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;kWh&quot; or text()=&quot;Ah&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'kWh' or 'Ah'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Value) &gt;= 0 or not(h:Value)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Value) &gt;= 0 or not(h:Value)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Value to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:ClothesWasher" priority="1031" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:ClothesWasher"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Location[text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;laundry room&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Location[text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;laundry room&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Location to be 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'laundry room' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:RatedAnnualkWh) &gt; 0 or not(h:RatedAnnualkWh)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:RatedAnnualkWh) &gt; 0 or not(h:RatedAnnualkWh)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected RatedAnnualkWh to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:ClothesDryer" priority="1030" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:ClothesDryer"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Location[text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;laundry room&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Location[text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;laundry room&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Location to be 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'laundry room' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:FuelType[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:FuelType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:FuelType[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:FuelType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FuelType to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:VentedFlowRate) &gt;= 0 or not(h:VentedFlowRate)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:VentedFlowRate) &gt;= 0 or not(h:VentedFlowRate)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected VentedFlowRate to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Dishwasher" priority="1029" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Dishwasher"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Location[text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;kitchen&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Location[text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;kitchen&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Location to be 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'kitchen' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:RatedAnnualkWh) &gt; 0 or not(h:RatedAnnualkWh)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:RatedAnnualkWh) &gt; 0 or not(h:RatedAnnualkWh)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected RatedAnnualkWh to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:EnergyFactor) &lt;= 5 or not(h:EnergyFactor)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:EnergyFactor) &lt;= 5 or not(h:EnergyFactor)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected EnergyFactor to be less than or equal to 5</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:EnergyFactor) &gt; 0 or not(h:EnergyFactor)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:EnergyFactor) &gt; 0 or not(h:EnergyFactor)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected EnergyFactor to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:PlaceSettingCapacity) &gt; 0 or not(h:PlaceSettingCapacity)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:PlaceSettingCapacity) &gt; 0 or not(h:PlaceSettingCapacity)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected PlaceSettingCapacity to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Refrigerator" priority="1028" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Refrigerator"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Location[text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;kitchen&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Location[text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;kitchen&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Location to be 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'kitchen' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:RatedAnnualkWh) &gt; 0 or not(h:RatedAnnualkWh)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:RatedAnnualkWh) &gt; 0 or not(h:RatedAnnualkWh)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected RatedAnnualkWh to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Freezer" priority="1027" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Freezer"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Location[text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;kitchen&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Location[text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;kitchen&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Location to be 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'kitchen' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:RatedAnnualkWh) &gt; 0 or not(h:RatedAnnualkWh)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:RatedAnnualkWh) &gt; 0 or not(h:RatedAnnualkWh)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected RatedAnnualkWh to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Dehumidifier" priority="1026" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Dehumidifier"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Type[text()=&quot;portable&quot; or text()=&quot;whole-home&quot;] or not(h:Type)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Type[text()=&quot;portable&quot; or text()=&quot;whole-home&quot;] or not(h:Type)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Type to be 'portable' or 'whole-home'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Location[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Location[text()=&quot;attic&quot; or text()=&quot;attic - conditioned&quot; or text()=&quot;attic - unconditioned&quot; or text()=&quot;attic - unvented&quot; or text()=&quot;attic - vented&quot; or text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;crawlspace&quot; or text()=&quot;crawlspace - conditioned&quot; or text()=&quot;crawlspace - unconditioned&quot; or text()=&quot;crawlspace - unvented&quot; or text()=&quot;crawlspace - vented&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;ground&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other housing unit above&quot; or text()=&quot;other housing unit below&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;outside&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Location to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:DehumidistatSetpoint) &gt;= 0 or not(h:DehumidistatSetpoint)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:DehumidistatSetpoint) &gt;= 0 or not(h:DehumidistatSetpoint)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected DehumidistatSetpoint to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:DehumidistatSetpoint) &lt;= 1 or not(h:DehumidistatSetpoint)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:DehumidistatSetpoint) &lt;= 1 or not(h:DehumidistatSetpoint)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected DehumidistatSetpoint to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionDehumidificationLoadServed) &gt;= 0 or not(h:FractionDehumidificationLoadServed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionDehumidificationLoadServed) &gt;= 0 or not(h:FractionDehumidificationLoadServed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionDehumidificationLoadServed to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionDehumidificationLoadServed) &lt;= 1 or not(h:FractionDehumidificationLoadServed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionDehumidificationLoadServed) &lt;= 1 or not(h:FractionDehumidificationLoadServed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionDehumidificationLoadServed to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:CookingRange" priority="1025" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:CookingRange"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Location[text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;kitchen&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Location[text()=&quot;basement&quot; or text()=&quot;basement - conditioned&quot; or text()=&quot;basement - unconditioned&quot; or text()=&quot;garage&quot; or text()=&quot;garage - conditioned&quot; or text()=&quot;garage - unconditioned&quot; or text()=&quot;kitchen&quot; or text()=&quot;living space&quot; or text()=&quot;other&quot; or text()=&quot;other heated space&quot; or text()=&quot;other housing unit&quot; or text()=&quot;other multifamily buffer space&quot; or text()=&quot;other non-freezing space&quot; or text()=&quot;unconditioned space&quot;] or not(h:Location)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Location to be 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'kitchen' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'unconditioned space'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:FuelType[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:FuelType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:FuelType[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:FuelType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FuelType to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Lighting/h:LightingGroup" priority="1024" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Lighting/h:LightingGroup"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Location[text()=&quot;interior&quot; or text()=&quot;exterior&quot; or text()=&quot;garage&quot; or text()=&quot;common area&quot;] or not(h:Location)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Location[text()=&quot;interior&quot; or text()=&quot;exterior&quot; or text()=&quot;garage&quot; or text()=&quot;common area&quot;] or not(h:Location)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Location to be 'interior' or 'exterior' or 'garage' or 'common area'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionofUnitsInLocation) &gt;= 0 or not(h:FractionofUnitsInLocation)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionofUnitsInLocation) &gt;= 0 or not(h:FractionofUnitsInLocation)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionofUnitsInLocation to be greater than or equal to 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:FractionofUnitsInLocation) &lt;= 1 or not(h:FractionofUnitsInLocation)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:FractionofUnitsInLocation) &lt;= 1 or not(h:FractionofUnitsInLocation)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FractionofUnitsInLocation to be less than or equal to 1</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Lighting/h:CeilingFan/h:Airflow" priority="1023" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Lighting/h:CeilingFan/h:Airflow"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:FanSpeed[text()=&quot;low&quot; or text()=&quot;medium&quot; or text()=&quot;high&quot;] or not(h:FanSpeed)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:FanSpeed[text()=&quot;low&quot; or text()=&quot;medium&quot; or text()=&quot;high&quot;] or not(h:FanSpeed)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FanSpeed to be 'low' or 'medium' or 'high'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Lighting/h:CeilingFan" priority="1022" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Lighting/h:CeilingFan"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="number(h:Quantity) &gt; 0 or not(h:Quantity)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="number(h:Quantity) &gt; 0 or not(h:Quantity)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Quantity to be greater than 0</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Pools/h:Pool" priority="1021" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Pools/h:Pool"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Type[text()=&quot;in ground&quot; or text()=&quot;on ground&quot; or text()=&quot;above ground&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot; or text()=&quot;none&quot;] or not(h:Type)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Type[text()=&quot;in ground&quot; or text()=&quot;on ground&quot; or text()=&quot;above ground&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot; or text()=&quot;none&quot;] or not(h:Type)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Type to be 'in ground' or 'on ground' or 'above ground' or 'other' or 'unknown' or 'none'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Pools/h:Pool/h:PoolPumps/h:PoolPump" priority="1020" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Pools/h:Pool/h:PoolPumps/h:PoolPump"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Type[text()=&quot;single speed&quot; or text()=&quot;multi speed&quot; or text()=&quot;variable speed&quot; or text()=&quot;variable flow&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot; or text()=&quot;none&quot;] or not(h:Type)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Type[text()=&quot;single speed&quot; or text()=&quot;multi speed&quot; or text()=&quot;variable speed&quot; or text()=&quot;variable flow&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot; or text()=&quot;none&quot;] or not(h:Type)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Type to be 'single speed' or 'multi speed' or 'variable speed' or 'variable flow' or 'other' or 'unknown' or 'none'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Pools/h:Pool/h:PoolPumps/h:PoolPump/h:Load" priority="1019" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Pools/h:Pool/h:PoolPumps/h:PoolPump/h:Load"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;kWh/year&quot; or text()=&quot;W&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;kWh/year&quot; or text()=&quot;W&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'kWh/year' or 'W'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Pools/h:Pool/h:Heater" priority="1018" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Pools/h:Pool/h:Heater"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Type[text()=&quot;gas fired&quot; or text()=&quot;electric resistance&quot; or text()=&quot;heat pump&quot; or text()=&quot;solar&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot; or text()=&quot;none&quot;] or not(h:Type)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Type[text()=&quot;gas fired&quot; or text()=&quot;electric resistance&quot; or text()=&quot;heat pump&quot; or text()=&quot;solar&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot; or text()=&quot;none&quot;] or not(h:Type)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Type to be 'gas fired' or 'electric resistance' or 'heat pump' or 'solar' or 'other' or 'unknown' or 'none'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Pools/h:Pool/h:Heater/h:Load" priority="1017" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Pools/h:Pool/h:Heater/h:Load"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;kWh/year&quot; or text()=&quot;therm/year&quot; or text()=&quot;W&quot; or text()=&quot;Btuh&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;kWh/year&quot; or text()=&quot;therm/year&quot; or text()=&quot;W&quot; or text()=&quot;Btuh&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'kWh/year' or 'therm/year' or 'W' or 'Btuh'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:HotTubs/h:HotTub" priority="1016" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:HotTubs/h:HotTub"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Type[text()=&quot;in ground&quot; or text()=&quot;on ground&quot; or text()=&quot;above ground&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot; or text()=&quot;none&quot;] or not(h:Type)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Type[text()=&quot;in ground&quot; or text()=&quot;on ground&quot; or text()=&quot;above ground&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot; or text()=&quot;none&quot;] or not(h:Type)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Type to be 'in ground' or 'on ground' or 'above ground' or 'other' or 'unknown' or 'none'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:HotTubs/h:HotTub/h:HotTubPumps/h:HotTubPump" priority="1015" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:HotTubs/h:HotTub/h:HotTubPumps/h:HotTubPump"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Type[text()=&quot;single speed&quot; or text()=&quot;multi speed&quot; or text()=&quot;variable speed&quot; or text()=&quot;variable flow&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot; or text()=&quot;none&quot;] or not(h:Type)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Type[text()=&quot;single speed&quot; or text()=&quot;multi speed&quot; or text()=&quot;variable speed&quot; or text()=&quot;variable flow&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot; or text()=&quot;none&quot;] or not(h:Type)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Type to be 'single speed' or 'multi speed' or 'variable speed' or 'variable flow' or 'other' or 'unknown' or 'none'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:HotTubs/h:HotTub/h:HotTubPumps/h:HotTubPump/h:Load" priority="1014" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:HotTubs/h:HotTub/h:HotTubPumps/h:HotTubPump/h:Load"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;kWh/year&quot; or text()=&quot;W&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;kWh/year&quot; or text()=&quot;W&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'kWh/year' or 'W'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:HotTubs/h:HotTub/h:Heater" priority="1013" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:HotTubs/h:HotTub/h:Heater"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Type[text()=&quot;gas fired&quot; or text()=&quot;electric resistance&quot; or text()=&quot;heat pump&quot; or text()=&quot;solar&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot; or text()=&quot;none&quot;] or not(h:Type)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Type[text()=&quot;gas fired&quot; or text()=&quot;electric resistance&quot; or text()=&quot;heat pump&quot; or text()=&quot;solar&quot; or text()=&quot;other&quot; or text()=&quot;unknown&quot; or text()=&quot;none&quot;] or not(h:Type)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Type to be 'gas fired' or 'electric resistance' or 'heat pump' or 'solar' or 'other' or 'unknown' or 'none'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:HotTubs/h:HotTub/h:Heater/h:Load" priority="1012" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:HotTubs/h:HotTub/h:Heater/h:Load"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;kWh/year&quot; or text()=&quot;therm/year&quot; or text()=&quot;W&quot; or text()=&quot;Btuh&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;kWh/year&quot; or text()=&quot;therm/year&quot; or text()=&quot;W&quot; or text()=&quot;Btuh&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'kWh/year' or 'therm/year' or 'W' or 'Btuh'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:MiscLoads/h:PlugLoad" priority="1011" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:MiscLoads/h:PlugLoad"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:PlugLoadType[text()=&quot;TV plasma&quot; or text()=&quot;TV CRT&quot; or text()=&quot;TV other&quot; or text()=&quot;computer&quot; or text()=&quot;space heater&quot; or text()=&quot;water bed&quot; or text()=&quot;aquarium&quot; or text()=&quot;electric vehicle charging&quot; or text()=&quot;well pump&quot; or text()=&quot;sauna&quot; or text()=&quot;other&quot;] or not(h:PlugLoadType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:PlugLoadType[text()=&quot;TV plasma&quot; or text()=&quot;TV CRT&quot; or text()=&quot;TV other&quot; or text()=&quot;computer&quot; or text()=&quot;space heater&quot; or text()=&quot;water bed&quot; or text()=&quot;aquarium&quot; or text()=&quot;electric vehicle charging&quot; or text()=&quot;well pump&quot; or text()=&quot;sauna&quot; or text()=&quot;other&quot;] or not(h:PlugLoadType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected PlugLoadType to be 'TV plasma' or 'TV CRT' or 'TV other' or 'computer' or 'space heater' or 'water bed' or 'aquarium' or 'electric vehicle charging' or 'well pump' or 'sauna' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:MiscLoads/h:PlugLoad/h:Load" priority="1010" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:MiscLoads/h:PlugLoad/h:Load"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;kWh/year&quot; or text()=&quot;W&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;kWh/year&quot; or text()=&quot;W&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'kWh/year' or 'W'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:MiscLoads/h:FuelLoad" priority="1009" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:MiscLoads/h:FuelLoad"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:FuelLoadType[text()=&quot;grill&quot; or text()=&quot;lighting&quot; or text()=&quot;fireplace&quot; or text()=&quot;other&quot;] or not(h:FuelLoadType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:FuelLoadType[text()=&quot;grill&quot; or text()=&quot;lighting&quot; or text()=&quot;fireplace&quot; or text()=&quot;other&quot;] or not(h:FuelLoadType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FuelLoadType to be 'grill' or 'lighting' or 'fireplace' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:FuelType[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:FuelType)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:FuelType[text()=&quot;electricity&quot; or text()=&quot;renewable electricity&quot; or text()=&quot;natural gas&quot; or text()=&quot;renewable natural gas&quot; or text()=&quot;fuel oil&quot; or text()=&quot;fuel oil 1&quot; or text()=&quot;fuel oil 2&quot; or text()=&quot;fuel oil 4&quot; or text()=&quot;fuel oil 5/6&quot; or text()=&quot;district steam&quot; or text()=&quot;district hot water&quot; or text()=&quot;district chilled water&quot; or text()=&quot;solar hot water&quot; or text()=&quot;propane&quot; or text()=&quot;kerosene&quot; or text()=&quot;diesel&quot; or text()=&quot;coal&quot; or text()=&quot;anthracite coal&quot; or text()=&quot;bituminous coal&quot; or text()=&quot;coke&quot; or text()=&quot;wood&quot; or text()=&quot;wood pellets&quot; or text()=&quot;combination&quot; or text()=&quot;other&quot;] or not(h:FuelType)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected FuelType to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:MiscLoads/h:FuelLoad/h:Load" priority="1008" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:MiscLoads/h:FuelLoad/h:Load"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="h:Units[text()=&quot;therm/year&quot; or text()=&quot;Btuh&quot;] or not(h:Units)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="h:Units[text()=&quot;therm/year&quot; or text()=&quot;Btuh&quot;] or not(h:Units)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected Units to be 'therm/year' or 'Btuh'</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building" priority="1007" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:BuildingID[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:BuildingID[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected BuildingID with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:ClimateandRiskZones/h:WeatherStation" priority="1006" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:ClimateandRiskZones/h:WeatherStation"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Attics/h:Attic" priority="1005" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Attics/h:Attic"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:AttachedToRoof[@idref]) = count(h:AttachedToRoof)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:AttachedToRoof[@idref]) = count(h:AttachedToRoof)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for AttachedToRoof</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:AttachedToWall[@idref]) = count(h:AttachedToWall)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:AttachedToWall[@idref]) = count(h:AttachedToWall)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for AttachedToWall</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:AttachedToFrameFloor[@idref]) = count(h:AttachedToFrameFloor)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:AttachedToFrameFloor[@idref]) = count(h:AttachedToFrameFloor)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for AttachedToFrameFloor</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Foundations/h:Foundation" priority="1004" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Foundations/h:Foundation"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:AttachedToRimJoist[@idref]) = count(h:AttachedToRimJoist)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:AttachedToRimJoist[@idref]) = count(h:AttachedToRimJoist)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for AttachedToRimJoist</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:AttachedToFoundationWall[@idref]) = count(h:AttachedToFoundationWall)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:AttachedToFoundationWall[@idref]) = count(h:AttachedToFoundationWall)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for AttachedToFoundationWall</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:AttachedToSlab[@idref]) = count(h:AttachedToSlab)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:AttachedToSlab[@idref]) = count(h:AttachedToSlab)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for AttachedToSlab</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:AttachedToFrameFloor[@idref]) = count(h:AttachedToFrameFloor)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:AttachedToFrameFloor[@idref]) = count(h:AttachedToFrameFloor)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for AttachedToFrameFloor</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:AttachedToWall[@idref]) = count(h:AttachedToWall)"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:AttachedToWall[@idref]) = count(h:AttachedToWall)"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected idref attribute for AttachedToWall</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Slabs/h:Slab/h:PerimeterInsulation" priority="1003" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Slabs/h:Slab/h:PerimeterInsulation"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Slabs/h:Slab/h:UnderSlabInsulation" priority="1002" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Slabs/h:Slab/h:UnderSlabInsulation"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution" priority="1001" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template>

	<!--RULE -->
<axsl:template match="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Oven" priority="1000" mode="M2"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Oven"/>

		<!--ASSERT ERROR-->
<axsl:choose><axsl:when test="count(h:SystemIdentifier[@id]) = 1"/><axsl:otherwise><svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="count(h:SystemIdentifier[@id]) = 1"><axsl:attribute name="role">ERROR</axsl:attribute><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Expected SystemIdentifier with id attribute</svrl:text></svrl:failed-assert></axsl:otherwise></axsl:choose><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template><axsl:template match="text()" priority="-1" mode="M2"/><axsl:template match="@*|node()" priority="-2" mode="M2"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M2"/></axsl:template></axsl:stylesheet>
